对,只要一个类含有一个纯虚函数,就是纯虚类。
所谓纯虚类,就是不能定义对象的类。言外之意,就是只能作为接口基类。
展开来讲,语言的设计都是和现实世界一一对应的。为什么纯虚类不能定义对象?想想看,纯虚类含有一个或多个纯虚接口,意味着这个类不知道怎么实现这些接口,或者干脆说,它不知道这些接口应该有什么样的“行为”。要是某个东西都不知道它要干什么,它也就没有“具体存在”的意义了。这里的“具体存在”,指的就是类的对象化,涉及到分配内存的行为。
有几个典型的纯虚类例子,比如COM里面的一系列纯虚类,IUnknown,IDispatch等,因为作为所有COM对象的基类,它们只是规定了一系列的接口而已,它们自身也不知道怎么实现。另外一个例子是Java里面的纯虚类,那就比C++的明确多了,直接给一个interface关键字,指明是一个纯虚类,只能作为接口使用。