私は練習をして問題を起こそうとします。オーバーロード演算子+ char
私はcharの演算子+をどのようにオーバーロードするのか分かりません。
cout<<"Please enter here a title: "<<endl;
cin>>s2;
s1="I am a " + s2;
Stringクラスのプライベート一部:
目的は、これらの方程式を解くことである
String operator+(const String &st1, const String &st2)
{ String sum;
int len1=std::strlen(st1.str);
int len2=std::strlen(st2.str);
int lenges=len1+len2;
sum.str=new char[lenges+1];
char *a=st1.str;
char *b=st2.str;
while(*a++) {*a++;}
while(*b++) {*a=*b;}
sum.str=st1.str;
return sum.str;
}
:私は次のコードを試してみましたが、それは仕事をdoesntの
private:
char * str; // pointer to string
int len; // length of string
static int num_strings; // number of objects
static const int CINLIM = 80;
誰かにヒントを与えることはできますか?
P.S. Stringクラスにはchar * strとint lenが含まれています。
"Hello"または "I am"のどちらも 'String'ではないので、2つの' String'を取る 'operator +'はそれらには適用できません。より一般的には、基本型だけで動作する演算子をオーバーロードすることはできません(ヘッダーをインクルードし、 '2 + 2!= 4'で終わると悪夢になります)。とにかく、ここで「方程式を解く」とはどういう意味ですか? –
'String'クラスを表示してください。 – wally