A は次のように定義されたクラスです。
class A
{
public:
int x;
}
そしてメイン:
int main()
{
A(ob); // note that copy constructor doesn't get called
ob.x = 1; // just to show that ob's members can be accessed
}
別の main() を次に示します。
int main()
{
A ob;
A ob2 = A(ob); // copy constructor gets called and everything happens as expected
}
C++ でこのようなインスタンス化を見たことがありません。ob
A(ob)は、以前に宣言されたオブジェクトであった A のコンストラクターを呼び出すことによって、関数スタイルの型キャストになるはずではありませんか?
編集: 2 番目の main() では、A(ob) が の初期化子として使用されますob2
。