Jas*_*n S 15 c++ class abstract
除了拥有纯虚函数之外,有没有办法阻止抽象基类的实例化?
我可以做这个:
class BaseFoo
{
virtual void blah() = 0;
};
class Foo : public BaseFoo
{
virtual void blah() {}
};
Run Code Online (Sandbox Code Playgroud)
但是我想避开一个vtable.(根据我关于虚拟析构函数的其他问题)
Microsoft ATL有ATL_NO_VTABLE来实现这一点(或者至少我认为这就是它的作用......)
Bli*_*ndy 35
一种非常明显的方法是声明受保护的构造函数,并在非抽象派生类中声明公共构造函数.
这当然会将corectness的负担转移到派生类,但至少基类是受保护的.