14

有没有办法在 C++ 中定义一个类 Foo 以便

  1. 我可以继承它
  2. 我不能从中“继承钻石”

IE

class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
class Weird: public Cat, public Dog {} // I want this to throw a compiler error
4

2 回答 2

6

Cprogramming.com 教程:用 ... 解决 C++ 中的钻石问题

http://www.cprogramming.com/tutorial/virtual_inheritance.html

尝试这个

对于此类问题,可以通过接口避免或解决。

于 2010-02-23T05:15:03.857 回答
1

另一个信息来源:

http://www.parashift.com/c++-faq-lite/multiple-inheritance.html

实际上,如果您在 C++ 上编程,那么整个 C++ 常见问题解答都非常值得一读。

于 2010-02-23T07:59:00.363 回答