C++ 对于以下内容,我们需要多少运算符重载?

C++ 对于以下内容,我们需要多少运算符重载?,c++,C++,如果我创建了一个与C++字符串完全相同的类Str,并且我希望通过重载+运算符来实现以下功能,其中a、b、C是Str类: strd=a+b,strd=“test”+b,strd=b+“test”,strd=c+b,strd=“test”+“test1” 我需要多少运算符+重载 我想我只需要3个?前四种情况下,两个在类内部(一个带有接受字符串的arg,另一个接受Str类),另一个在外部用于两个字符串?如果您不关心额外的构造函数调用,则一个。您只需要一个,即非成员。但是,Str d=“test”+“t

如果我创建了一个与C++字符串完全相同的类Str,并且我希望通过重载+运算符来实现以下功能,其中a、b、C是Str类:

strd=a+b
strd=“test”+b
strd=b+“test”
strd=c+b
strd=“test”+“test1”

我需要多少运算符+重载


我想我只需要3个?前四种情况下,两个在类内部(一个带有接受字符串的arg,另一个接受Str类),另一个在外部用于两个字符串?

如果您不关心额外的构造函数调用,则一个。您只需要一个,即非成员。但是,
Str d=“test”+“test1”
是不可能的,因为表达式
“test”+“test1”
Str
一无所知。您可以定义一个文字后缀。