【发布时间】:2014-08-30 11:32:48
【问题描述】:
您好,我想使用继承类的虚函数,而不必将其包含在最终会进入头文件的类原型中。有没有办法做到这一点?
class Base {
public:
virtual void func () = 0;
};
class Derived : public Base {
public:
};
void Derived::func () {
return;
}
这就是我的想法。在我实际使用的情况下,我可能会在任何函数中使用大量的虚函数,并且我不想让所有额外的函数陷入类声明。
【问题讨论】:
-
不,你无法避免。原因?你的头文件的用户(包括编译器)怎么会知道你的类是非抽象的?
-
这是 C++ 最大的弱点之一。它导致编译速度慢得多。有一些解决方案可以减少这个问题,例如 pimpl idiom,但这仍然是问题。
-
@ikh:不清楚这个“问题”和编译速度有什么关系?
-
“我不想让类声明陷入困境......” - 听起来你不想让声明陷入类声明......;o)
标签: c++ inheritance virtual