下列关于纯虚函数与抽象类的描述中,错误的是()?
A. 纯虚函数是一种特殊的函数,它允许没有具体的实现。定义一个纯虚函数的语法是在函数声明后面加上 =0,例如 virtual void func() = 0;
B. 抽象类是指具有纯虚函数的类。抽象类不能被直接实例化,只能作为基类来使用。由于抽象类中包含了至少一个纯虚函数,而纯虚函数没有具体的实现,所以不能创建该类的对象。
C. 一个基类的声明中有纯虚函数,该基类的派生类不一定不再是抽象类。如果派生类没有提供纯虚函数的实现,或者实现的方式不满足纯虚函数的要求,那么派生类仍然是抽象类。只有当派生类实现了所有的纯虚函数之后,才可以创建派生类的对象。
D. 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。派生类必须实现基类中所有的纯虚函数,否则派生类也会变成抽象类。