[英]c++: explain this function declaration
class PageNavigator {
public:
// Opens a URL with the given disposition. The transition specifies how this
// navigation should be recorded in the history system (for example, typed).
virtual void OpenURL(const GURL& url, const GURL& referrer,
WindowOpenDisposition disposition,
PageTransition::Type transition) = 0;
};
我不明白那是什么= 0; 部分......我们想要沟通什么?
'= 0'表示它是纯虚方法 。 必须在继承类时重写它。
如果一个类有一个纯虚方法,那么它被认为是抽象的 。 无法创建抽象类的实例(对象)。 它们仅用作基类。
好奇的细节:'= 0'并不意味着方法没有定义(没有主体)。 您仍然可以提供方法体,例如:
class A
{
public:
virtual void f() = 0;
virtual ~A() {}
};
void A::f()
{
std::cout << "This is A::f.\n";
}
class B : public A
{
public:
void f();
}
void B::f()
{
A::f();
std::cout << "And this is B::f.\n";
}
它是一个纯虚函数 - 基类中没有定义,使它成为一个抽象类,任何从PageNavigator继承的可实例化类都必须定义这个函数。
= 0表示该函数是纯虚函数或抽象函数,实际上意味着两件事:
a)具有抽象函数的类是抽象类。 您无法实例化抽象类。
b)您必须定义一个子类,该子类用实现覆盖它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.