gcc warning :[-Wreorder]

本文探讨了在GCC 7.4.0中遇到的-Wreorder警告,重点在于多继承情况下构造函数的正确初始化顺序。通过实例说明了如何通过调整构造函数参数来消除警告,并总结了保持初始化序列与类定义中成员一致性的必要性。
摘要由CSDN通过智能技术生成

gcc warning :[-Wreorder]

gcc version 7.4.0

1.一般情况

https://stackoverflow.com/questions/1564937/gcc-warning-will-be-initialized-after

2.多继承中,基类的构造函数调用

class SingingWaiter : public Singer, public Waiter
{
    public:
        SingingWaiter()
            : Worker(), Waiter(), Singer(){}
            ......
};

如下警告,

解决办法:保证构造函数与继承的基类顺序相同即可。

class SingingWaiter : public Singer, public Waiter
{
    public:
        SingingWaiter()
            : Worker(), Singer(), Waiter(){}
            ......
};

总结:两者本质相同,即保证初始化序列与成员出现在类中的顺序相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值