C ++ / CLI странная проблема наследования - PullRequest
0 голосов
/ 18 июня 2011

В моем проекте 3 класса (назовем тогда A, B и C). A является абстрактным. Они имеют следующие отношения:
A это базовый класс B
B является базовым классом C

А внутри C я объявляю переменную vector<A*> member_vector;. Это вызывает следующие проблемы:

C3699: '*': невозможно использовать это косвенное указание для типа 'A'
C4368: невозможно определить 'member_vector' как член управляемого 'C': смешанные типы не поддерживаются.

У вас есть какие-либо подсказки, почему эта ошибка происходит? Я думаю, что может быть проблема с использованием циклического класса, однако, как я могу преодолеть это?

Ответы [ 2 ]

6 голосов
/ 18 июня 2011

Проблема в том, что вы пытаетесь использовать собственный тип std::vector внутри управляемого класса .NET Framework в C ++ / CLI.Если вы не знаете C ++ и .NET, то C ++ / CLI не рекомендуется.

2 голосов
/ 18 июня 2011

У вас происходит две проблемы. Например, вы используете собственный тип в своем классе, который является управляемым классом (C4368). Кроме того, вам нужно использовать «^» вместо «*», если это управляемо (C3699).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...