C++ 类中调用基类带参数构造函数以及常量如何初始化

 我来答
YONGYUAN0087
2013-08-26 · TA获得超过161个赞
知道答主
回答量:132
采纳率:50%
帮助的人:67.7万
展开全部
有时候,基类构造函数是带有参数,而子类构造函数是不带参数的,如下: class Animal{public:Animal(int width, int height) { this-width = width; this-height = height; }private:int width, height;};class Cat:public Animal{public:Cat() { cout << "init cat" << endl; }};在建立Cat类对象时,编译出错: C:\Documents and Settings\Administrator\桌面\abc\Text1.cpp(104) : error C2512: 'Animal' : no appropriate default constructor available 解决这个问题应该在Cat的构造函数中显式调用基类的带参构造函数。因为在基类中定义了带参构造函数,编译器不会提供默认构造函数。 (或者可以在基类中增加一个不带参数的构造函数)这个问题将解决。 下面采用的是调用基类带参构造函数的方式: class Cat:public Animal{public:Cat():Animal(100,200) { cout << "init cat" << endl; }};即在构造函数的后面增加一个冒号,后面是基类的构造函数。 这种方式同样可以用来初始化类中的常量。 由于在类定义中不允许对成员进行初始化,常量也不允许。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式