有没有办法在 C++ 中定义一个类 Foo 以便
- 我可以继承它
- 我不能从中“继承钻石”
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
有没有办法在 C++ 中定义一个类 Foo 以便
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
Cprogramming.com 教程:用 ... 解决 C++ 中的钻石问题
http://www.cprogramming.com/tutorial/virtual_inheritance.html
尝试这个
对于此类问题,可以通过接口避免或解决。
另一个信息来源:
http://www.parashift.com/c++-faq-lite/multiple-inheritance.html
实际上,如果您在 C++ 上编程,那么整个 C++ 常见问题解答都非常值得一读。