1. 程式人生 > >C++類的使用(四)—— 繼承

C++類的使用(四)—— 繼承

一、繼承

有時候,我們想要寫一個類實現某些功能,但又想同時具備另一個類的功能,這個時候,我就要用到類的第二大特點——繼承

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 這會將ClassApublic部分作為自己的publicClassAprotected部分作為自己的protected 但是不可以繼承ClassAprivate部分 privateprotected的差異就在此,所以我建議用protected

類似地,還有protected

private繼承,將第一行中的public進行替換即可,其含義如下表

public protected private
public繼承 public protected 無法繼承
protected繼承 protected protected 無法繼承
private繼承 private private 無法繼承