[英]c++ operator+= overloading struct string
在下面的程序中調用運算符+ =會產生分段錯誤。 我不知道為什么。
#include <string>
struct foo
{
std::string name;
foo operator+=( foo bar )
{}
};
int main()
{
foo a,b;
a += b;
return 0;
}
沒有return語句可能會導致分段錯誤。 您的實現應如下所示:
foo& operator+=( const foo& bar )
{
name += bar.name;
return *this;
}
運算符+ =不需要返回值:
struct Test
{
std::string str;
void operator += (const Test& temp);
};
void Test::operator += (const Test& temp)
{
str += temp.str;
return;
}
int main()
{
Test test, test_2;
test.str = "abc";
test_2.str = "def";
test += test_2;
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.