class Namespace::Class;
为什么我必须这样做?:
namespace Namespace {
class Class;
}
使用VC ++ 8.0时,编译器会出现以下问题:
错误C2653:“名称空间”:不是类或名称空间名称
我认为这里的问题是编译器无法判断Namespace
类还是名称空间?但是为什么这很重要,因为它只是一个前向声明?
有没有其他方法可以向前声明在某些名称空间中定义的类?上面的语法就像我在“重新打开”命名空间并扩展其定义一样。如果Class
未在中定义Namespace
怎么办?在某个时候会导致错误吗?
A::B
的A
是名称空间标识符而不是类名?
Namespace
对于类或名称空间为什么很重要,我没有问题。只是别无所求,可以想象可能会在语法上引发一场语言大战。