С++ множественное наследование, предотвращающее алмаз

Есть ли способ определить класс Foo в С++ так что

  • Я могу наследовать от него
  • Я не могу "наследовать алмаз" от него

т.е.

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

Ответы

Ответ 1

Cprogramming.com Учебное пособие: Решение проблемы алмаза в С++ с помощью...

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

Попробуйте это

Для этого типа проблемы можно избежать или решить с помощью интерфейса.