首页 新闻 会员 周边

参数列表初始化的问题C++

0
悬赏园豆:200 [已解决问题] 解决于 2015-08-15 14:07
class CCQ
{
public:
CCQ(int ival):iccq(ival)
{
printf("CCQ\n");
}
virtual ~CCQ()
{
printf("~CCQ\n");
}
virtual void TestBBQ()
{
printf("TestCCQ\n");
}
public:
int &iccq;
};
class BBQ:public CCQ
{
public:
BBQ()
{
ibbq = 2;
printf("BBQ\n");
}
virtual ~BBQ()
{
printf("~BBQ\n");
}
virtual void TestBBQ()
{
printf("TestBBQ\n");
}
public:
int ibbq;
};
int mian()
{
CCQ ccq(1);
}

为什么提示:error C2512: “CCQ” : 没有合适的默认构造函数可用?

c++
WhereTo的主页 WhereTo | 初学一级 | 园豆:22
提问于:2015-08-15 10:35
< >
分享
最佳答案
1

因为真的没有默认构造函数。你自己指定了构造函数时,就不为你提供默认构造函数了。而构造BBQ时又需要先构造父对象。
所以在CCQ里再加一个无参数的构造函数,
或者BBQ的构造函数写这样

BBQ():CCQ(1) { ibbq = 2; printf("BBQ\n"); }
收获园豆:200
请叫我头头哥 | 大侠五级 |园豆:9382 | 2015-08-15 11:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册