【发布时间】:2014-11-03 12:26:14
【问题描述】:
我有一个基类 -
class content
{
private:
int m_data;
public:
int getdbhandle() { return m_sql_db; }
void setData(int data) { m_data = data; }
virtual int getterrestrialServices { qDebug()"This is a dummy interface"; }
};
class telecontent: public content
{
virtual int getterrestrialServices { qDebug()" Real implementation here"; }
};
现在,当产品类型为远程时,课程内容被实例化为远程内容。 然而,当产品类型是通用的 - 虚拟界面打印不断出现。 我怎样才能避免这种情况?是否有任何设计模式强制基类不实现虚拟函数?我想要一种有效的方法,以便只有派生类才有方法。我不希望基类具有该方法。但是,我无法修改调用者 - 代码 - 以便不调用该方法。我想要策略性设计的最佳方式,以避免虚拟接口。
【问题讨论】:
-
你为什么不把它变成纯虚拟的?
-
不要忘记虚拟析构函数。
-
你可以像这样使用纯虚函数:
virtual int getterrestrialServices() = 0;
标签: c++ design-patterns