下面的代码做什么?C++

下面的代码做什么?C++,c++,inheritance,C++,Inheritance,我的教授今天在黑板上写了一些我不懂的代码。它似乎是一个派生类构造函数调用基类构造函数,但我不确定。下面是: class Base{ int x, y; public: Base(int,int); }; class Derived: public Base{ int z; public: //what does the colon and the code following it do here? Derived(int a):Base(a, a+5){ z = a; } }; 我相信它

我的教授今天在黑板上写了一些我不懂的代码。它似乎是一个派生类构造函数调用基类构造函数,但我不确定。下面是:

class Base{
int x, y;
public:
Base(int,int);
};

class Derived: public Base{
int z;
public:
//what does the colon and the code following it do here? 
Derived(int a):Base(a, a+5){
z = a;
}
};

我相信它用传入派生类构造函数的任何“a”值初始化派生类,第二个值初始化为+5。然后将值z设置为传递到派生类的构造函数中的任何值。冒号初始化基类中的项。

这是一个基本的示例。基本上,派生从基继承

描述代码:基类有两个私有整数成员x,y,应该使用给定的构造函数初始化它们

派生自B的类继承自B,并具有自己的私有成员z

派生类的构造函数使用参数*a、a+5初始化基类,然后将值a赋给私有参数z


**我们没有构造函数的实现,但是我们可以假设x=a,y=a+5*

派生类是从基类派生或继承的。基类在其构造函数中接受两个整数

假设基类是这样定义的

class Base {

    int x;
    int y;

public:

    Base(int x, int y) {
        this->x = x;
        this->y = y;
    }
}
派生类的声明方式允许派生类从基类继承x和y的值

此表示法使用传递到派生类的值“a”调用基类构造函数

使基类第一个参数等于a,第二个参数等于a+5

如果我在实例化派生类时通过5,那么我将使用值5和10调用基类构造函数

此外,派生类成员z现在持有a的值

> P>尝试搜索C++委托构造函数或查看此链接。 在您拥有的代码中,调用基本构造函数,然后运行派生构造函数的主体

您可以跳到示例部分并阅读行注释


构造函数可以按顺序执行,在初始化之前需要一些准备工作

在代码中,先调用基类构造函数,然后调用派生类构造函数。 更多信息


你的怀疑是正确的:你可以问教授或TAB你可以很容易地做你自己的实验。然后研究为什么第一个版本编译失败,而老师的版本编译成功。如果你不理解,你应该请你的老师解释。他们获得报酬是为了向你提供所需的信息,并确保你理解所展示的材料。