我得到了错误,不知道是什么错了
我试着把构造器排除在外。
我得到以下错误:
在构造函数“B::B(int,int)”中:没有用于调用“A::A()”的匹配函数
备注候选人有:
A::A(常数A
A::A(int,int)
#include <iostream>
using namespace std;
class A{
public:
int a;
int b;
A(int a1, int b1){
a=a1; b = b1;
}
};
class B : public A {
public:
int c;
int d;
int e;
B(int c1=10, int d1=20){
c=c1; d=d1;
e = a * b;
}
void show(){
cout <<"a = "<<a<<endl;
cout <<"b = "<<b<<endl;
cout <<"c = "<<c<<endl;
cout <<"d = "<<d<<endl;
cout <<"e = "<<e<<endl;
}
};
int main() {
A a(2,2);
B b;
b.show();
return 0;
}
B
继承自A
,因此它需要构造A
,但是A
没有默认构造函数,也没有从B
的初始化列表中显式调用A
的构造函数。
你需要这样的东西:
B(int c1=10, int d1=20) : A(c1, d1) {
c=c1; d=d1;
e = a * b;
}
或者使A
默认可构造。
此外,您还应该使用c
、d
和e
的初始化列表,而不是在构造函数的主体中分配(尽管优化器将在这种情况下处理它,总是以正确的方式做这件事是更好的形式)
B(int c1=10, int d1=20) : A(c1, d1), c(c1), d(d1), e(a*b) {}
我是c语言的新手。当我运行代码时,出现以下错误:( 大Sorting.cpp:在函数int main(int, const char**)中:大Sorting.cpp:13: 22:错误:没有匹配函数调用std::向量 这是我的代码
我尝试了一些代码在Java中交换两个整数,而不使用第三个变量,即使用XOR。 以下是我尝试的两个交换函数: 该代码产生的输出如下: 我很想知道,为什么会有这样的说法: 和这个不一样?
本文向大家介绍给两个构造函数A和B,如何实现A继承B?相关面试题,主要包含被问及给两个构造函数A和B,如何实现A继承B?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: // 再在A的构造函数里new B(props);
我只是想习惯基本的复制构造函数。 我假设我正确地放置了复制构造函数。 但是当我试图编译时,我不断地得到错误“没有匹配的构造函数来初始化B” 我有点困惑。
问题内容: 我尝试了一些代码,使用XOR在Java中交换两个整数而不使用第三个变量。 这是我尝试的两个交换函数: 这段代码产生的输出是这样的: 我很好奇,为什么这样说: 与这个不同吗? 问题答案: 问题是评估的顺序: 参见JLS第15.26.2节 首先,对左操作数求值以产生一个变量。 如果该评估突然完成,则赋值表达式由于相同的原因而突然完成;右边的操作数不会被评估,并且不会发生赋值。 否则,将保存
我的目标是优化我的应用程序代码。我的代码如下所示: 当我在Netbeans中使用Findbugs进行静态分析时,它显示了一个类似于“方法调用无效的新整数(int)构造函数;使用Integer.valueOf(int)”的警告/错误。 我知道新整数(int)和整数之间的区别。valueOf(int)。 一个创建一个附加对象,另一个不创建。一个不缓存,另一个缓存。 所以我这样修改了我的代码... 但同