【发布时间】:2014-09-08 19:21:48
【问题描述】:
我在网上看到,我们很少会定义函数,即使它在下面的类中定义为纯虚拟。
class abc
{
public:
virtual void func() = 0;
}
void abc::func()
{
cout << "in abc::func()";
}
我不明白这个的用途。在链接http://www.gotw.ca/gotw/031.htm 上,提到我们可以将其用作纯虚拟析构函数。但是我还没有清楚的理解。谁能告诉我有什么用途。
【问题讨论】:
-
答案在链接中:如果您想阻止其他人实例化您的类,这很有用。就个人而言,我认为有更好的方法可以做到这一点(例如,将构造函数声明为
private)。 -
@barak manos:确实,虽然一个简单的“#define private public”会打破这一点
-
@StealthyHunter7 是的,“simpel”行会破坏您的标准合规性(很可能是您的整个项目
-
@StealthyHunter7:哈哈,你可以在这里将它作为一个单独的问题发布......诸如“为什么(在地球上)有人想要
#define private public?”或“@987654325 能做什么? @可能有好处吗?” (答案可能是“什么都没有!”+ 对你的问题投了几票)。 -
@barak manos:实际上有这样一个案例,有人在做项目时使用它,而构建 API 的团队还没有完成,所以他们没有使用接口,而是直接使用私有成员.
标签: c++