我们怎么知道C ++中的一个类是否只是通过查看它的定义来抽象?
我的意思是,在Java中,类名中会包含一个抽象关键字。在C ++中,我们所拥有的只是纯虚函数......好吧,即使这样,如果一个类派生一个抽象基类(使用纯虚函数)但却无法为这些函数提供实现(意味着派生类也是抽象的),我们甚至不知道派生类是否只是通过查看它是抽象的,因为它不包含任何纯虚函数,而且它是抽象的。
那么,这里的交易是什么?
答案 0 :(得分:2)
除了寻找像你所说的纯虚函数之外,没有办法从定义中判断一个类是否是抽象的。
答案 1 :(得分:1)
因此,标准在C ++中不对抽象类使用任何特殊关键字,唯一的方法是在类中至少存在一个纯虚函数。
答案 2 :(得分:1)
在C ++ 11中使用is_abstract(),之后在boost中有相同的功能。