Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:为';指定了返回类型;运算符std::string{aka std::uuCXX11::basic_Ustring<;char>;}';_C++_String_Eclipse_Operator Overloading - Fatal编程技术网

C++ 错误:为';指定了返回类型;运算符std::string{aka std::uuCXX11::basic_Ustring<;char>;}';

C++ 错误:为';指定了返回类型;运算符std::string{aka std::uuCXX11::basic_Ustring<;char>;}';,c++,string,eclipse,operator-overloading,C++,String,Eclipse,Operator Overloading,错误的可能原因和解决方案是什么 在.h文件中 std::string operator std::string(); 在.c文件中,X是一些int变量 而Y是char string ClassName::operator string() { string temp; temp = X + Y; return temp; } 转换运算符的名称是其返回类型。这意味着您没有为他们指定一个。那会给你 operator std::string(); 因为声明和定义将是

错误的可能原因和解决方案是什么

在.h文件中

std::string operator std::string();
在.c文件中,
X
是一些
int
变量 而
Y
char

string ClassName::operator string()
{
    string temp;

    temp = X + Y;

    return temp;

}

转换运算符的名称是其返回类型。这意味着您没有为他们指定一个。那会给你

operator std::string();
因为声明和定义将是

ClassName::operator string()
{
    string temp;

    temp = X + Y;

    return temp;

}

还要注意,当
temp=X+Y时将编译,它将给您一些字符,这些字符将
X
放置在字符表中。如果希望
123+a
成为
123a
,则需要
temp=std::to_字符串(X)+Y