Right way to conditionally initialize a C++ member variable?

前端 未结 6 1127
执念已碎
执念已碎 2020-12-30 07:18

I\'m sure this is a really simple question. The following code shows what I\'m trying to do:

class MemberClass {
public:
    MemberClass(int abc){ }
};

clas         


        
6条回答
  •  盖世英雄少女心
    2020-12-30 07:55

    Or:

    class MemberClass {
    public:
        MemberClass(int abc){ }
    };
    
    class MyClass {
    public:
        MemberClass* m_class;
        MyClass(int xyz) {
            if(xyz == 42)
                m_class = new MemberClass(12);
            else
                m_class = new MemberClass(32);
        }
    };
    

    If you somehow still want to keep the same syntax. Member initalization is more efficient though.

提交回复
热议问题