class Namespace::Class;
Зачем мне это делать?
namespace Namespace {
class Class;
}
Используя VC ++ 8.0, компилятор выдает:
ошибка C2653: «Пространство имен»: это не имя класса или пространства имен
Я предполагаю, что проблема здесь в том, что компилятор не может определить, Namespaceявляется ли класс или пространство имен? Но почему это важно, так как это всего лишь предварительное заявление?
Есть ли другой способ объявить вперед класс, определенный в некотором пространстве имен? Синтаксис выше выглядит так, будто я «заново открываю» пространство имен и расширяю его определение. Что если в Classдействительности не определены Namespace? Не приведет ли это к ошибке в какой-то момент?
A::BA
Namespaceэто класс или пространство имен. Только не приближайтесь к намеку о возможности предположительно начать языковую войну за синтаксис.