在阅读“Sams 在 21 天内自学 C++”时,我无法理解虚拟复制构造函数是如何工作的。书中的完整代码在这里:[http://cboard.cprogramming.com/cplusplus-programming/9392-virtual-copy-constructor-help.html][1]
特别是虚方法 Clone() 调用 Mammal 复制构造函数和 Dog 复制构造函数,因为它返回“Mammal*”并返回“new dog (*this)”
Mammal::Mammal(const Mammal &rhs):itsAge(rhs.GetAge())
{
cout << "Mammal copy constructor\n";
};
Dog::Dog (const Dog &rhs):Mammal(rhs) //what is ":Mammal(rhs)" here -
// call of Mammal copy constructor?
//if not why is it required?
//or what is it here?
{
cout << "Dog copy constructor\n";
};
什么返回“return new Dog(*this)”?新对象或指向新对象的指针?
谢谢您的回答。PS 对不起,我之前的回答带有错误的标签。这是我第一次使用“stackoverflow”