有没有办法++定义一个类Foo用C 使C++多重继承防止钻石
- 我可以从它
- 我不能“钻石继承”从它
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
有没有办法++定义一个类Foo用C 使C++多重继承防止钻石
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
尝试这个
对于这类问题可以避免或解决的接口。
令人惊叹。我没有意识到这是“虚拟”继承。 – anon 2010-02-23 05:18:57
问题在于虚拟继承是派生出来的人的手,你不能真的做任何改变......所以只希望那些编写派生类的人阅读你的意见;) – 2010-02-23 16:33:09
的另一个信息来源:
http://www.parashift.com/c++-faq-lite/multiple-inheritance.html
其实整个C++ FAQ一点真的很值得一读,如果你是在C++编程。
而且相关的书很好太。 – markh44 2010-02-23 09:17:57
@vava:很好的编辑,没有意识到1. 2. auto itemizes – anon 2010-02-23 05:12:54
你*不想*使用虚拟继承或者你不知道它? – Duck 2010-02-23 05:16:23
我不知道。但是,我也想得到一个编译器错误。我继承的基类“Foo”是一个入侵式的ref计数指针。我不应该在对象中有两个实例。 – anon 2010-02-23 05:19:43