我的教授今天在董事会上写了一些我不明白的代码。它似乎是一个派生类构造函数调用基类构造函数,但我不确定。这是:
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;
}
};
答案 0 :(得分:2)
这是Inheritance的基本示例。基本上,Derive
继承自Base
。
描述代码:类Base
有两个私有整数成员(x, y
),应该使用给定的构造函数初始化。
类Derived
继承自B,并拥有自己的私有成员(z
)。
Derived
的构造函数使用参数*(Base
)初始化a, a+5
类,然后将值a
分配给私有参数z
**(我们没有构造函数的实现,但我们可以假设(x = a, y = a + 5
))*
答案 1 :(得分:0)
我相信它会用任何' a'来初始化Derived类。 value被传递到Derived类的构造函数中,第二个值被初始化为+ 5。然后将值z设置为传递给Derived类的构造函数的任何值。冒号初始化基类中的项目。
答案 2 :(得分:0)
Derived类派生自或继承自Base类。 Base类在其构造函数中接受两个整数。
我们假设这是Base类的定义方式,
class Base {
int x;
int y;
public:
Base(int x, int y) {
this->x = x;
this->y = y;
}
}
声明Derived类的方式允许Derived类从Base类继承x和y的值。
此表示法调用Base类构造函数,并将值“a”传递给Derived类。
使Base类的第一个参数等于a,第二个参数等于a + 5。
如果我在实例化Derived类时传递了5,那么我将使用值5和10调用Base类构造函数。
此外,Derived类成员z现在保存a的值。
答案 3 :(得分:0)
答案 4 :(得分:-1)
尝试搜索c++ delegate constructor
或查看此链接。
在您拥有的代码中,调用Base构造函数,然后运行Derived构造函数的主体。
您可以跳到示例部分并阅读行注释。