示例代码:
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
类的基础上创建对象,请为此建议解决方案。
答案 0 :(得分:2)
我想你想使用initializer list。
ABC::ABC()
:
#ifndef KASH
m_lm(new BaseLMD())
#else
m_lm(new BaseLMI())
#endif
{
}