c++继承问题

zzh193 2009-02-04 07:27:35
请高手指教以下程序错在哪?
#include<iostream>
using namespace std;
class A
{
int x;
public:
A(int a):x(a){cout<<"Constructing A\n";}
};
class B:public A
{
public:
B(){cout<<"Constructing B\n";}
};
int main()
{
B b;
}
...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jichre 2009-02-04
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
class A
{
int x;
public:
A(int a=0):x(a){cout < <"Constructing A\n";} //提供默认构造A(int a=0)
};
class B:public A
{
public:
B(){cout < <"Constructing B\n";}
};
int main()
{
B b;
}
华亭真人 2009-02-04
  • 打赏
  • 举报
回复
当实例化B时,会调用B的默认构造函数,因为没有参数,就会试图调用A的默认构造函数...但A没有,这样就出错了
sagegz 2009-02-04
  • 打赏
  • 举报
回复
没有合适的默认构造函数.
qqwx_1986 2009-02-04
  • 打赏
  • 举报
回复
加个
A():x(0){cout < <"Constructing A\n";}

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧