C++類的使用(四)—— 繼承
阿新 • • 發佈:2018-12-20
一、繼承
有時候,我們想要寫一個類實現某些功能,但又想同時具備另一個類的功能,這個時候,我就要用到類的第二大特點——繼承
class ClassA
{
public:
ClassA(int x)
:_x(x)
{}
void setX(int x)
{_x = x;}
int getX()
{return _x;}
protected:
int _x;
};
注意到我用的是protected
而不是private
,這是為繼承做準備
class ClassB: public ClassA
{
public:
ClassB(int x, int y)
_y(y)
{setX (x);}
void setY(int y)
{_y = y;}
int getY()
{return _y;}
protected:
int _y;
};
在ClassB
的定義中,加上了: public ClassA
(:
後的空格不一定要)
這代表ClassB
使用public
方式繼承於ClassA
這會將ClassA
的public
部分作為自己的public
將ClassA
的protected
部分作為自己的protected
但是不可以繼承ClassA
的private
部分
private
與protected
的差異就在此,所以我建議用protected
類似地,還有protected
private
繼承,將第一行中的public
進行替換即可,其含義如下表
public | protected | private | |
---|---|---|---|
public繼承 | public | protected | 無法繼承 |
protected繼承 | protected | protected | 無法繼承 |
private繼承 | private | private | 無法繼承 |