我在尝试在类中创建一个对象时面临如何解决链接错误?

时间:2016-03-10 14:01:17

标签: c++ object visual-c++

示例代码:

ABC.h

Class ABC{
    public:

    ABC();
    virtual bool a();
    virtual bool b();
    virtual bool c();

    protected: 
        ~ABC();

    private:

    BaseLM* m_lm;
    }

abc.cpp

ABC::ABC()
{
#ifndef KASH
    m_lm(new BaseLMD());
#else
    m_lm(new BaseLMI());
#endif 
}

我有来自BaseLMD的{​​{1}}和BaseLMI派生类,并试图在BaseLM内创建一个对象 收到错误:

  

错误C2064:术语不评估为采用1个参数的函数

我希望在abc.cpp# define ifndef KASH类的基础上创建对象,请为此建议解决方案。

1 个答案:

答案 0 :(得分:2)

我想你想使用initializer list

ABC::ABC()
:
#ifndef KASH
    m_lm(new BaseLMD())
#else
    m_lm(new BaseLMI())
#endif
{
}