فى حالة لما اعمل class كهذة
class SimpleCat
{
public:
SimpleCat (); // constructor
SimpleCat(SimpleCat&); // copy constructor
~SimpleCat(); // destructor
};
SimpleCat::SimpleCat()
{
cout << "Simple Cat Constructor...\n";
}
SimpleCat::SimpleCat(SimpleCat&)
{
cout << "Simple Cat Copy Constructor...\n";
}
SimpleCat::~SimpleCat()
{
cout << "Simple Cat Destructor...\n";
}و بعدين استخدم ال function دى by value
SimpleCat FunctionOne (SimpleCat theCat);
فلما اجى اعمل object فى ال main فالconstractor العادية هية اللى بتتنفذ
اما عندما عمل calling لل function فى ال main ال copy constructor هوة اللى بيتنفذ قبل ما ينفذ الfunction و بعد ما تخلص
سؤال تانى لية فى ال copy constructor مينفعش تكون كدة
SimpleCat(SimpleCat);
ولازم تكون كدة
SimpleCat(SimpleCat&);
لية و اية الفرق
