C++语言程序设计

threeD类中，标记为兰色的地方是threeD类比twoD类多出的部分。实际上threeD类仅比twoD类多一个成员变量z及两个成员函数setZ()和getZ()。也就是说，threeD类增加了一点新的代码到twoD类的定义之中。
在threeD类中编写了一部分与twoD类中重复的代码，如果使用继承，则可以简化threeD类的代码。继承的一般形式如下：
class 派生类:访问权限 基类
{
…
}
访问权限是访问控制说明符，它可以是public、private或protected。如果使用继承，我们可以将threeD类的定义改写为：
// 使用继承定义threeD类
class threeD:public twoD
{
private:
double z;
public:
// 内联的构造函数
// 基类的构造函数不被继承
// threeD 类的构造函数复用了twoD类的构造函数，并通过
//成员初始化表将值传送到twoD的构造函数
threeD(double i, double j, double k):twoD(i,j){z = k;}
void setZ(double NewZ){z = NewZ;}
double getZ() {return z;}
};
上例中，twoD称为基类，threeD称为派生类。应该注意到：派生类threeD中，setX()、setY()、getX(、getY()函数没有再定义，因为这些函数是可从基类twoD继承，就好象在threeD类中定义了这些函数一样。
注意：twoD的构造函数用threeD的构造函数的初始化表中，说明基类的数据成员先初始化。基类的构造函数和析构函数不能被派生类继承。每一个类都有自己的构造函数和析构函数，如果用户没有显式定义，则编译器会隐式定义缺省的构造函数和析构函数。