Предполагая, что у меня есть абстрактный базовый класс A и выведите B из него.C++: Вернуть указатель на дочерний класс
С помощью следующего кода:
A* myInst = (A*) new B;
A* GetA() { return myInst; }
B* GetB() { return (B*) myInst; }
Первая функция компилируется, второй нет. Ошибка: error C2143: syntax error : missing ';' before '*'
- Почему я не могу вернуть указатель на дочерний класс A?
Ошибка также возникает, если я заменяю содержимое функции return NULL;
!
Дополнительная точка с запятой после объявления функции кажется странной. Попробуйте удалить его. – Lagerbaer 2010-11-23 15:39:06
Не обращайте внимания на то, что функция была inline изначально – Parror 2010-11-23 15:39:53
Какая строка на самом деле ссылается на эту ошибку? Возможно, вы захотите показать нам весь код, потому что `;` ошибки могут означать больше, чем просто отсутствующая точка с запятой (неопределенная, да) – birryree 2010-11-23 15:41:50