[c++] 使用子類實例中的基類部分初始化另一個基類

可以使用 派生類實例 來初始化基類實例,此時會用派生類中的基類部分來初始化基類實例,派生類
部分將被忽略。

    注:上述操作僅僅在基類定義了 拷貝/賦值 構造的情況下可行,因爲這種初始化
        實際上相當於調用了基類的 拷貝/賦值 構造。

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;      //相當於調用基類的賦值構造

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章