-7
私はこのクラスを持っています。++ cを作成すると何が起こるのか理解できません。そして、これは何を返すのでしょうか?私の英語には申し訳ありません。プリインクリメント操作中にオブジェクトにはどうなりますか?
class Cls{
int i;
public:
Cls(int i=8):i(i){cout<<'A';}
Cls(const Cls &t):i(t.i){cout<<'B';}
~Cls(){cout<<'C';}
void af(){cout<<i;}
Cls operator+(Cls &t){return Cls(i+t.i);}
Cls operator++(){i++; return *this;}
Cls& operator--(){--i; return *this;}
operator int(){cout<<'D'; return i;}
};
int main(){
Cls c; cout <<","; //Here the constructor will print A
++c; cout <<","; // here?
c.af(); cout <<","; //This will print 9
//Then the destructor will print C.
return 0;
}
実際の出力は次のようになります。
A,BC,9,C
私はそれを印刷する必要があることを期待:
A,,9,C
をBC
が印刷されているのはなぜ?
あなたの名前の選択は、質問を少し混乱させます。私はまず、C++オブジェクトが作成されたときに何が起こるかを尋ねていると思っていました。 –
'this 'は「thisポインタ」として知られています。 – Yashas
++ cは作成済みですか? –