/*说明派生类的生成和使用*/
#include<iostream>
using namespace std;
class test1//基类
{
int x;
public:
test1():x(0)
{
}
test1(int a):x(a)
{
}
void disp()
{
cout<<"x="<<x<<endl;
}
};
class test2:public test1//派生类
{
int y;
public:
test2():y(0)
{
}
test2(int a,int b):test1(a)
{
y=b;
}
void disp()
{
test1::disp();
cout<<"y="<<y<<endl;
}
};
int main()
{
test2 p(10,20);
p.disp();
return 0;
}
result:
x=10
y=20
说明:
(1)在派生类中可以直接使用基类的public
和protected
成员,但是无法访问private
成员。
(2)在派生类的构造函数中可以使用基类的构造函数。在派生类的构造函数中,对基类的数据成员进行初始化。
调用的顺序是:先调用基类的构造函数初始化基类的数据成员,如果没有给出基类数据成员的初始化,则自动调用基类的默认构造函数初始化基类。
(3)在派生类的构造函数和成员函数中,可以调用基类中非private
的成员函数。
(4)如果基类和派生类中有同名函数,需要作用域限定符加以区分。