Q1:「自己クラスの型付きポインター コンストラクター」にはまともな/正式な名前はありますか?
Q2:コピー コンストラクターが「自己クラスの型付きポインター コンストラクター」よりも有名なのはなぜですか?
または、「自己クラスの型付きポインターコンストラクター」ではなく、コピーコンストラクターを使用する必要があるのはどのような場合ですか?
class MyClass
{
public:
int i;
MyClass()
{
i = 20;
}
//Copy constructor
MyClass(MyClass const & arg)
{
i = arg.i;
}
//What kind of Constructor is this one?
MyClass(MyClass* pArg)
{
i = pArg->i;
}
};
int main() {
MyClass obj;
MyClass* p = new MyClass();
//call copy constructor
MyClass newObj(obj); //call copy constructor directly
MyClass newObj2(*p); //dereference pointer and then call copy constructor
MyClass* pNew = new MyClass(*p); //dereference pointer and then call copy constructor
//Call THE constructor
MyClass theObj(&obj); //get the address, call THE constructor
MyClass theObj2(p); //call pointer constructor directly
MyClass* ptheNew = new MyClass(p); //call pointer constructor directly
}