是否可以在引用另一个派生类的派生类中声明复制构造函数?
Is it possible to declare a copy constructor in a derived class that references another derived class?
例如,如果我创建一个Base
类和 2 个派生类,DerivedOne
和DerivedTwo
,是否可以在引用DerivedTwo
的DerivedOne
中声明一个复制构造函数?
谢谢
你在寻找这样的东西吗?
#include <iostream>
using namespace std;
class B{
protected:
int a;
public:
B(int i):a(i){}
B(const B &b): a(b.a){cout<<"copying... ";} //base class copy constructor
virtual void print()=0;
};
class D1: public B{
//other functions and variables
public:
D1(): B(5){ /*other initializations*/ };
void print(){cout<<"D1:"<<a<<endl;}
};
class D2: public B{
//other functions and variables
public:
D2(const B &b):B(b){ /*other initializations*/ } //COPY CONSTRUCTOR
void print(){cout<<"D2:"<<a<<endl;}
};
int main() {
D1 d1;
d1.print(); // output: D1:5
B &b=d1;
D2 d2(b);
d2.print(); // output: copying... D2:5
return 0;
}
如果有什么不清楚的地方,请在评论中告诉我。
相关文章:
- 具有多个类、派生类的C++正向声明
- 是否可以使用 using 将基类中的公共成员重新声明为派生类中的私有成员?
- 基类可以声明虚拟方法但不定义它吗?仍然在派生类中定义
- 将派生类的构造函数声明为父类的友元
- 从模板基类派生是否在派生类声明的点实例化模板
- 从基类的唯一指针中声明派生类的类型
- C++ 多态性:如果派生类中的虚函数在基类中声明了常量,是否需要将其声明为常量
- 如何将超类的受保护成员访问到其派生类. 如果已在派生类中声明了具有相同名称的函数?
- 如何声明从 QApplication 派生的 Qt 类并覆盖通知函数?
- 是否可以在引用另一个派生类的派生类中声明复制构造函数?
- 冲突的声明(外部基础与派生)
- 声明派生类的对象而不指定它
- 通过派生类模板参数指定基类模板参数之一。如何使用基类的 using 声明
- 声明嵌套基模板类实例是派生类的好友
- 是否可以在C++中声明基类,以便只能通过创建函数创建从它派生的类
- 在基类主体内声明但通过派生类召集的函数
- 如何在基本模板类中声明成员,其中类型取决于派生类的类型
- 在派生的C 类中,访问基类受保护成员作为公共的访问声明
- 在基类中使用派生类,而在基类之后声明派生类
- 在派生类或基类中,我应该在哪里声明友元类