错误:为“运算符std :: string {aka std :: __ cxx11 :: basic_string <char>}”指定的返回类型

时间:2019-12-02 22:46:23

标签: c++ string eclipse operator-overloading

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

在.h文件中

std::string operator std::string();

.c文件X中有一些int变量 而Ychar

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

    temp = X + Y;

    return temp;

}

1 个答案:

答案 0 :(得分:5)

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

operator std::string();

声明和定义为

ClassName::operator string()
{
    string temp;

    temp = X + Y;

    return temp;

}

还请注意,虽然temp = X + Y;会进行编译,但它会给您一些字符,该字符将X放在字符表中。如果您希望123 + a成为123a,则需要temp = std::to_string(X) + Y;