我在C ++中知道,
virtual double f()=0;
是纯虚函数,
关于什么
virtual void f()
{return 0.0};
?
这是一个纯虚函数吗?
答案 0 :(得分:2)
没有。当且仅当它以= 0
声明时,函数才是纯虚函数。
请注意,可以为纯函数提供定义,但必须分两步完成:
struct X
{
virtual double f() = 0; // pure, X is abstract
};
double X::f() { return 0; } // definition
用法:
X x; // error, X is abstract
struct Y : X
{
double f() override
{
return X::f(); // OK, calls pure virtual function
}
};
Y y; // OK, Y overrides X::f
答案 1 :(得分:0)
纯虚函数是标有=0
的函数。它隐含地使类抽象化。抽象类无法实例化。派生类必须覆盖继承的纯虚函数,否则它也是抽象的。