继承中的初始化表达式表

当Base类中有多个构造函数时,在Derived类的初始化表达式表中只需要使用其中一个构造函数进行初始化就可以了,不需要把Base类中的所有构造函数都进行调用。

例如:

#include<iostream>
using namespace std;

class Base
{
      public:
             int x,y;
      public:
             Base(){}
             Base(int a):x(a){}
             Base(int a,int b):x(a),y(b){}
};

class Derived:public Base
{
      public:
             int m,n;
      public:
             Derived(){}
             Derived(int a):m(a),Base(a){}//或者Base(a,a)
             Derived(int a,int b):m(a),n(b),Base(a,b){}//不需要同时Base(a),Base(a,b) 
};

int main()
{
    Derived d;
    getchar();
    return 0;
}

参考

使用初始化清单和直接在构造函数内初始化成员变量的区别

高质量C++编程指南ch9.2

C++编程思想P329



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值