我不知道最近发生了什么。该程序似乎在视觉工作室上运行良好。也许我弄错了,我无法发现它......请有人帮我解决这个问题。
#include <iostream>
#include<string>
#include<cstdlib>
using namespace std;
class Aokiji
{
private:
string name1;
string name2;
public:
string setName(string x)
{
name1=x;
}
string getName()
{
return name1;
}
};
int main()
{
Aokiji Grapes;
Grapes.setName("I got it!");
cout<< Grapes.getName()<< endl;
system("pause");
}
答案 0 :(得分:4)
你的setName()函数没有返回任何内容,但它应该返回一个std :: string。您需要返回一个值,或使setName()函数为void(可能是它应该是什么)
答案 1 :(得分:0)
正如PaulMacKenzie指出的那样,问题是缺少退货声明。这就是使用C ++的原因之一,应始终使用-Werror=return-type
标志来确保函数不会错过return语句。
我很惊讶C ++实际上允许这样做。我认为函数可能错过return语句的唯一情况是它是否应该返回一些东西,而是抛出异常而不返回。但这是一个非常狭窄的用例,在这种情况下添加一个虚拟返回语句不需要任何费用。
答案 2 :(得分:0)
在代码中替换setName()方法:
void setName(string x) { name1 = x; }
你需要返回0;在int main()。