C++ 如何实现从基类获取变量的构造函数?

C++ 如何实现从基类获取变量的构造函数?,c++,oop,inheritance,data-structures,constructor,C++,Oop,Inheritance,Data Structures,Constructor,我正在做一个在线课程,要求我做我写的标题。我做了什么使代码编译并给出了正确的输出,但我的评分中的注释给出了一个我不太理解的错误 以下是作业说明: 基类对包含单个构造函数对(A,b),该构造函数对使用两个整型参数A和b初始化该对。派生类sumPair继承基类对,并使用新的构造函数sumPair(A,b)和新的变量sum对其进行专门化 这两个类都已定义 实现新的构造函数sumPair(a,b),它已经在类sumPair中声明。新的构造函数sumPair(a,b)应该使用整数值a,b初始化继承的类对,

我正在做一个在线课程,要求我做我写的标题。我做了什么使代码编译并给出了正确的输出,但我的评分中的注释给出了一个我不太理解的错误

以下是作业说明:

基类对包含单个构造函数对(A,b),该构造函数对使用两个整型参数A和b初始化该对。派生类sumPair继承基类对,并使用新的构造函数sumPair(A,b)和新的变量sum对其进行专门化

这两个类都已定义

实现新的构造函数sumPair(a,b),它已经在类sumPair中声明。新的构造函数sumPair(a,b)应该使用整数值a,b初始化继承的类对,并将成员变量“sum”设置为a和b的和

下面是代码(我只写了几行)

/*类对已被删除
*用
*以下构造函数:
*
*配对(int,int)
*
*将其两个参数存储在
*成对的两个私有成员变量。
*
*类sumPair也已被删除
*定义如下:
*
*类sumPair:公共对{
*公众:
*整数和;
*sumPair(int,int);
* };
* 
*实现构造函数
*sumPair(int,int)使
*加载的两个成员变量
*碱基对类及其
*参数,并初始化
*成员变量sum及其和。
*/
//这是我写的部分
sumPair::sumPair(inta,intb){
总和=a+b;
}
/*下面是main()函数
*您可以使用来测试您的
*实施
*sumPair构造函数。
*/
int main(){
sumPair sp(15,16);

std::cout您正确初始化了
sum
,但忘记调用基类构造函数。即,您想要的是:

sumPair::sumPair(int a,int b)
  : Pair(a, b)
{
  sum =a+b;
}

…这样
对(a,b)
构造函数将在基类中被调用,并正确设置基类变量。在您拥有的代码中,默认构造函数
Pair()
将被隐式调用,基类的成员变量将不会被设置为
a
b
,这是做什么的“评分不会通过”mean?@JohnZwinck起初它只是说“不正确”,没有给我任何理由。现在我提交了第二次,它指出了我的问题(但我仍然不明白这意味着什么,我应该更改什么),你也可以像这样将总和添加到初始值设定项列表中:sumPair::sumPair(inta,intb):Pair(a,b),sum(a+b){}。也许这是练习的一部分。谢谢,还有一个简单的问题:为什么基类初始值设定项对(a,b)而不是对(inta,intb)?因为在这段代码中您调用的是基类构造函数,所以它使用与任何其他函数调用相同的语法。
sumPair::sumPair(int a,int b)
  : Pair(a, b)
{
  sum =a+b;
}