打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++ 类中调用基类带参数构造函数以及常量如何初始化
有时候,基类构造函数是带有参数,而子类构造函数是不带参数的,如下:
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; }
};

即在构造函数的后面增加一个冒号,后面是基类的构造函数。
这种方式同样可以用来初始化类中的常量

由于在类定义中不允许对成员进行初始化,常量也不允许。
如下所示:
class Cat:public Animal
{
public:
Cat():Animal(100,200),Age(2),IsLikeFish(true) { cout << "init cat" << endl; }
private:
const int Age;
const bool IsLikeFish;
};
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java中super关键字介绍以及super()的使用
在C 中子类继承和调用父类的构造函数方法
c++中类的默认构造函数,析构函数,拷贝构造函数
C++基础概念
C++11新特性
C++基础知识易错点总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服