☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

基类对象构造完毕之前不可调用成员函数

8.12 ID_illMemberCall
目录 › next › previous

基类对象未构造完毕时调用成员函数会导致标准未定义的行为。

示例:

struct A {
    A(int);
};

struct B: A {
    B(): A(member()) {  // Non-compliant, undefined behavior
    }

    int member();
};

例中成员函数的返回值作为基类构造函数的参数,而这时基类对象尚未构造,相当于成员函数的调用者没有被初始化,这是一种逻辑错误。

依据

ISO/IEC 14882:2003 12.6.2(8)-undefined ISO/IEC 14882:2011 12.6.2(13)-undefined
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.