-2
当我运行该代码
#include<iostream>
using namespace std;
class A {
int i;
public:
// A() {cout<<"in A's def const\n";};
A(int k) {cout<<"In A const\n"; i = k; }
};
class B : public A {
public:
//B(){cout<<"in B's def const\n";};
B(int i) : A(i) {cout<<"in B const\n";}
};
class C : public B {
public:
C() {cout<<"in C def cstr\n";}
C(int i) : B(i) {cout<<"in C const\n";}
};
int main()
{
C obj=new C(2);
return 0;
}
它显示 在构造“C :: C()”: 88c8237e3ffce7819f082b210069fd59.cpp:19:13:错误:对呼叫没有匹配的功能为' B :: B()”输出
为什么出现这种情况,因为我只caling参数的构造函数明确everywhere.??please帮助 C(){COUT < < “用C高清CSTR \ n”;}
_“我只是调整参数化构造函数明确无处不在”_ - 再次看,你不是。 –
如果您没有明确指定任何基类构造函数,则调用默认的构造函数。由于你的类B没有基类构造函数,所以你有一个错误。 –