Там какое-либо хорошее программное обеспечение с открытым исходным кодом к случаям теста записи?

Виртуальные базовые классы, используемые в виртуальном наследовании, являются способом предотвратить несколько "экземпляров" данного класса, появляющегося в иерархии наследования при использовании множественного наследования.

Рассматривают следующий сценарий:

class A { public: void Foo() {} };
class B : public A {};
class C : public A {};
class D : public B, public C {};

вышеупомянутая иерархия классов приводит к "страшному ромбу", который похож на это:

  A
 / \
B   C
 \ /
  D

экземпляр D будет составлен из B, который включает A и C, который также включает A. Таким образом, у Вас есть два "экземпляра" (из-за отсутствия лучшего выражения) A.

, Когда у Вас есть этот сценарий, у Вас есть возможность неоднозначности. Что происходит, когда Вы делаете это:

D d;
d.Foo(); // is this B's Foo() or C's Foo() ??

Виртуальное наследование там для решения этой проблемы. Когда Вы определяете виртуальный при наследовании классов, Вы говорите компилятору, что только хотите единственный экземпляр.

class A { public: void Foo() {} };
class B : public virtual A {};
class C : public virtual A {};
class D : public B, public C {};

Это означает, что существует только один "экземпляр" включенного в иерархию. Следовательно

D d;
d.Foo(); // no longer ambiguous

Hope, которая помогает как мини-сводка. Для получения дополнительной информации имейте чтение это и это . Хороший пример также доступен здесь .

6
задан Andrea Giovacchini 3 August 2009 в 08:42
поделиться

2 ответа

вы можете попробовать testopia для bugzilla http://www.mozilla.org/projects/testopia/ это довольно красиво и бесплатно / с открытым исходным кодом.

2
ответ дан 17 December 2019 в 02:32
поделиться

TestLink - еще один очень хороший вариант; я настоятельно рекомендую его.

4
ответ дан 17 December 2019 в 02:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: