可以使用 派生类实例 来初始化基类实例,此时会用派生类中的基类部分来初始化基类实例,派生类
部分将被忽略。
注:上述操作仅仅在基类定义了 拷贝/赋值 构造的情况下可行,因为这种初始化
实际上相当于调用了基类的 拷贝/赋值 构造。
class A{
public:
A()=default;
A(const A&);
A& operator=(const A&);
}
class B:public A{
public:
B()=default;
}
B b1;
A a1(b1); //编译器会把 B 的引用 隐式转换成 A的引用,派生类向基类的 指针/引用 转换,
//相当于调用基类的拷贝构造
A a2 = b1; //相当于调用基类的赋值构造