close
衍生類別物件可以複製給基礎類別物件。這樣一來,衍生類別繼承自基礎類別的成員會被複製過去,
不過在衍生類別中另外定義的成員則不會複製。如:
class A
{
public:
int a;
private:
int xx;
};
class B:public A //類別B 繼承類別A
{
public:
int b;
};
A A1;
B B1;
B1.a=10;
A1=B1; //把「類別B的物件」B1,複製給「類別A的物件」A1
cout<<A1.a; //顯示10
cout<<A1.b; //這一行是錯誤示範。b是衍生類別物件B1自定的成員,不會被複製到基礎類別物件A1內。
B1=A1; //這一行是錯誤示範。基礎類別物件無法複製給衍生類別物件。因基礎類別物件裡沒有衍生類別物件自定的成員。
註:以上的複製方法,稱為「切割(sliding)」。也就是把衍生類別物件自定的成員給刪除,再複製給基礎類別物件。
文章標籤
全站熱搜
留言列表