【初心者歓迎】C/C++室 Ver.12【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0892839
NGNGclass myclass
{
public:
int i;
myclass( int ai = 0 ){ i = ai; cout<<"コンストラクタの呼び出し"<<endl;}//コンストラクタ
myclass(const myclass & ob){ i = ob.i; cout<<"コピーコンストラクタの呼び出し"<<endl;}//コピーコンストラクタ
~myclass(){cout<<"デストラクタの呼び出し"<<endl;}//デストラクタ
myclass operator + (myclass & ao);
};
myclass myclass::operator + (myclass & ao)
{
cout<<"operator+の呼び出し"<<endl;
//myclass ret;
//ret.i = i + ao.i;
//return ret;
return myclass(i+ao.i);
}
int main()
{
myclass ob1( 1 ), ob2( 2 ), ob3( 3 ), ob4( 4 );
const myclass ob5(100);
ob3 = ob1 + ob2 + ob4;
cout<<ob3.i<<endl;
//ob3 = ob1 + (ob2 + ob4);//このままだとVCではOK。g++ではエラー。
cout<<ob3.i<<endl;
return 0;
}
main関数内でob1〜ob5までをいろいろ組み合わせて足してみています。
typeidではオブジェクトの型は分かると思いますが、修飾子の判断までは
どうなんでしょう。
■ このスレッドは過去ログ倉庫に格納されています