继承
继承,他的功能就如同他的名字一样,可以继承一个类的数据和方法,然后增添一些自己独有的数据和方法:
根据我们之前讲解初步入门C++之类的例子,假如我们现在有一个长方体的类,它和长方型类唯一不一样的数据就是它多了一个高,同时多了一个打印体积的方法,这时候我们就可以用到继承了,如下:
#include <iostream>
class rect
{
public:
int x;
int y;
int area;
rect()
{
std::cout << "rect 类实例已被创建" << std::endl;
x = 0;
y = 0;
}
rect(int x_input, int y_input)
{
std::cout << "rect 类实例已被创建" << std::endl;
x = x_input;
y = y_input;
}
void area_printf()
{
area = x * y;
std::cout << "该实例的面积是:" << area << std::endl;
return;
}
~rect()
{
std::cout << "rect 类实例已被释放" << std::endl;
return;
}
};
class rect_body : public rect
{
public:
int highth;
int volume;
rect_body()
{
std::cout << "rect_body 类实例已被创建" << std::endl;
x = 0;
y = 0;
highth = 0;
}
rect_body(int input_x, int input_y, int input_z)
{
std::cout << "rect_body 类实例已被创建" << std::endl;
x = input_x;
y = input_y;
highth = input_z;
}
void volume_printf()
{
volume = x * y * highth;
std::cout << "该实例的体积是:" << volume << std::endl;
return;
}
~rect_body()
{
std::cout << "rect_body 类实例已被释放" << std::endl;
return;
}
};
int main(int argc, char* argv[])
{
rect_body rect_body_1(10, 3, 4);
rect_body_1.volume_printf();
return 0;
}
从执行结果来看,我们可以看到,因为 rect_body 类是继承 rect 类得来的,所以我们创建一个 rect_body 类的时候,会先建立 rect 类,然后往上面加入 rect_body 类的数据和方法,这,就是继承。