строка — не соответствует функция для вызова ‘std :: basic_string & lt; char & gt; :: basic_string Переполнение стека

Эй, я делаю «Создай свою собственную приключенческую игру!» Теперь, кроме необходимости проходить сквозную игру, я хотел создать систему чит-кода, и теперь я пытаюсь объявить строковую ведьму равной более чем 6 словам. Я не вижу, в чем проблема, я сделал это только с двумя слов и не получил ошибок, как всегда, когда я сделал то же самое с более чем 2 словами, и я получил ошибку.

Main.cpp | 27 | ошибка: нет соответствующей функции для вызова ‘std :: basic_string :: basic_string (const char [4], const char [6], const char [5], const char [5], const char [ 6], const char [6]) ‘|

Вот мой код:

#include <iostream>
//LVL1
#include "C:\Users\QuestionMark\Desktop\Make Your Own Adventure\LVL1\Dog.h"#include "C:\Users\QuestionMark\Desktop\Make Your Own Adventure\LVL1\Dream.h"#include "C:\Users\QuestionMark\Desktop\Make Your Own Adventure\LVL1\GTFO.h"
using namespace std;

int Return();
int Continue();

int main(){

cout << "Welcome to my 'MAKE YOUR OWN ADVENTURE GAME!!!'\n";
cout << "Have Fun and enjoy the ride!\n";
cout << "Would you like to put in a cheat code??\n";
cout << "Yes or No, Cap Sensitive!\n";
Return();
return 0;
}

int Return(){
std::string y("Yes","No");
cin >> y;
if(y.compare("Yes")){
cout << "Please Enter Cheat Code now\n";
std::string z("Dog","Dream","GTFO","Path","Sword","Weird");
cin >> z;
if(z.compare("Dog")){
Dog();
}else if(z.compare("Dream")){
Dream();
}else if(z.compare("GTFO")){
GTFO();
}else if(z.compare("Path")){
Path();
}else if(z.compare("Sword")){
Sword();
}else if(z.compare("Weird")){
Weird();
}else{
cout << "Invalid Cheat Code\n";
}

}else if(y.compare("No")){
return Continue();
}else{
cout << "Invalid Answer!\n";
Continue();
}
}

int Continue(){

cout << endl;
cout << "You wake up and your house is on fire what do you do ??\n";
cout << "Quick Grab The Dog = 0, GTFO = 1, Go back to sleep = any other number\n";
int x;
cin >> x;
if(x == 0){
Dog();
}else if(x == 1){
GTFO();
}else{
Dream();
}
}

0

Решение

Ваша проблема здесь в вашем объявлении строки z, ваш код:

std::string z("Dog","Dream","GTFO","Path","Sword","Weird");

ваш компилятор не может найти конструктор для std :: string, который принимает 6 аргументов, попробуйте вместо

std::string z("any string");

или потому что вы собираетесь инициализировать Z просто

std::string z;

1

Другие решения

Других решений пока нет …