A.1. struct与class关键差异

在 C++ 中,关键字 struct 和 class 几乎意味着同样的事情,像以下这样的代码是完全合法的:

struct Drawable {
  virtual void draw() = 0;
  virtual ~Drawable() = default;
};

class Painting : public Drawable {
  void draw() override;
}

以下是一些需要注意的细节:

顺便指出,在 C++ 中,基类中的成员函数带有访问限定符(例如 Drawable::draw() 是 public)的情况下,派生类中的同名函数也可以有不同的访问限定符(例如 Painting::draw() 是 private),这完全允许。而一些其他流行的编程语言则不允许这种做法。