c ++:解释这个函数声明

deo*_*oll 2 c++ syntax 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;
};
Run Code Online (Sandbox Code Playgroud)

我不明白那是什么= 0; 部分......我们想要沟通什么?

Tom*_*icz 10

'= 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";
}
Run Code Online (Sandbox Code Playgroud)