Есть ли способ определить класс Нечто в C++ так, чтобы
Т.е.
class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
class Weird: public Cat, public Dog {} // I want this to throw a compiler error
Помните, что что-то вроде
Type2(3.0) match {
case t2 @ Type2(radius) => //...
}
привязывает радиус
к значению 3,0
и привязывает t2
к экземпляру сопоставляемого Type2.
На примере
def findPerimeter(o: SomeObject): Perimeter = o match {
case Type1(length, width) => new Perimeter(0, 0, length, width)
case Type2(radius) => new Perimeter(0, 0, 2*radius, 2*radius)
// ...
// assume that Perimeter defines a + operator
case MixedTypes(group @ _*) => group.reduceLeft(findPerimeter(_) + findPerimeter(_))
}
Здесь группа
привязана к последовательности SomeObject
, которые определяют типы
. Вы можете рассматривать, точно так же, как последовательность того, что конструктор args для MixedTypes.
Как долго? Есть ли у вас какие-либо точные детали?
В любом случае, имеет смысл, что расшифровка сложнее, чем шифрование, так как шифрование не симметрично, как 123 = > abc и abc > 123.
Для получения более подробной информации предлагаю начать здесь .
Чтобы прочитать о том, как работает калькуляция, эта статья кажется очень хорошей http://www.di-mgt.com.au/rsa_alg.html
Cprogramming.com Учебное пособие: Решение алмазной проблемы в C++ с...
http://www.cprogramming.com/tutorial/virtual_inheritance.html
Попробуйте
Для этого типа проблемой может быть "Избежать" или "Решить по интерфейсу".
Еще один источник информации:
http://www.parashift.com/c++-faq-lite/multiple-inheritance.html
Вообще-то весь C++ faq маленький, его действительно стоит прочитать, если вы программируете на C++.