#C++类继承
继承的好处之一就是使用了可以重复使用的代码,不用重复的造轮子。
继承的类是由基类派生来的,所以要先有一个基类:
派生类继承了基类的所有东西,但是也要在一定的规则下使用和操作基类的成员了。
格式:
格式:class B:public A{
....
..
.
}
B是派生类;冒号表示类B继承自类A;public表示公有派生,公有派生将使基类的公有成员成为派生类的公有成员,而基类的私有成员也将成为派生类的一部分,只是只能使用基类的公有方法和保护方法访问。
B类有两个基本特征:
继承了基类的数据成员严肃的说就是继承了基类的实现;
可以使用基类的方法严肃的说就是继承了基类的方法;
创建了类B之后呢?
类B需要自己的构造函数;
可以根据需要在类B中添加数据成员和成员函数;
类B构造函数,思考!
由于B继承了A的所有的东西,但是A的私有数据成员不能被B直接设置,需要在B中通过使用A的成员函数来设置私有成员数据,而A能设置成员数据的函数一般只有构造函数,所以要在B的构造函数执行之前执行A的构造函数。
class A{
private:
int x;
int y;
public:
A(int&a=1,int&b=2);
}
A::A(int&a,int&b){
x=a;
y=b;
}
class B:public A{
private:
int z;
public:
B(int&c=3,const A&aa);
b(int&c=3,int&a=1,int&b=2 );
}
B::B(int&c,const A&aa):A(aa){包含类A的对象引用,在成员初始化之前先创建对象A使用A的构造函数
将A中的成员数据初始化,在将派生类的成员初始化。
z=c;
}
B::B(int&c,int&a,int&b):a(a,b){先调用基类A的构造函数将派生类的参数传递给基类成员,完成了对
基类成员数据的设置。
z=c;
}
有关派生类的构造函数的说明:
首先创建基类对象;
派生类对象通过成员初始化列表将数据传递给基类的构造函数;
随后派生类对象的构造函数完成新增成员数据的初始化;
有关成员初始化列表的说明:
派生类的构造函数可以通过初始化器列表机制将数据传递给基类的构造函数,以实现对基类私有数据成员的设置。
B::B(int x,int y):A(x,y)
{
.....
}