0
オーバーロードされた演算子を突っ込んでいます。オーバーロードされた関数内から取り除くことはできません
私は何らかの理由で私のオーバーロードされた機能の中から出力を得られません。
C:MinGWの\ビン\> G ++ stringoverloading3.cpp
C:MinGWの\ \ binに> A.EXE私は私のコードを実行すると
class MyString { public: MyString(const char aString[20]){ // copy the input string to "data" for(int i = 0; i < 20; i++){ data[i] = aString[i]; } } public: MyString operator=(const MyString copyFrom){ MyString copyTo(""); cout << "hi"; for(int i = 0; i < 20; i++){ copyTo.data[i] = copyFrom.data[i]; } return copyTo; } public: char data[20]; // a pointer to memory }; int main() { MyString a("hello"); MyString b = a; cout << b.data << endl; return 0; }
は、私は次のような結果を得ます ハロー
C:\ MinGWの\ビン>
何かaがあります勘定書を殺す大当たりオーバーロード?
です。hmm – JoeBass
この 'MyString b = a;'は代入ではなく(初期化です)、代入演算子は呼び出されません。あなたのC + +のテキストブックは、これを説明する必要があります。 –
btwの配列とポインタがコード内のコメントと同じでないことを示します。 – user463035818