Skip to content

继承

Inheritance

继承,可以让一个类“是”另一个类的子类型。完成编程作业的时候,可以不需要使用继承的特性。也就是说,学习数据结构课程的时候,你能看懂用到继承的示例代码就可以。

#include<cstdio>
class Point{
    int x,y;
public:
    Point(int a, int b){//constructor
        x = a;
        y = b;
    }
    void print_xy(){
        printf("%d %d\n",x,y);
    }
};
class Point3D:Point{
    int z;
public:
    Point3d(int a,int b,int c):Point(a,b){
        z=c;
    }
    void print_xyz(){
        print_xy();
        printf("%d\n",z);
    }
}
int main(){
    Point p1(1,2);
    Point3D p2(3,4,5); 
    p1.print_xy();
    p2.print_xyz();
}

练习0:

这是一段具有语法错误的代码。你需要借助编译器/IDE修改里面的语法错误。你可以选中括号中内容查看提示(一处是大小写错误,一处是少写了分号)。

我们定义了新类型Point3D, 它“继承”了Point。一个Point3D对象内部“包含”一个Point对象和额外的成员变量z。

练习1: 看看sizeof(Point3D)的大小。想想为什么是这么大。

练习2: 定义一个Point4D类型继承Point3D, 额外给它加一个int成员变量w.