命名空间的一个疑点
命名空间的一个疑问?有这样的声明:namespace NS {class A}现在定义一个类B:class B{public:explicit B()
命名空间的一个疑问?
有这样的声明:
namespace NS {
class A;
}现在定义一个类B:
class B
{
public:
explicit B();
~B();
NS::A *a;
};
在另外一个文件中定义一个类C:
class C: public B
{
public:
explicit C();
~C();
};
那么在类C中怎么使用a呢?我调用了下,报错:use of undefined type 'NS::A'
我想原因是命名空间NS的作用域没到类C中。
如果想在类C中调用a,怎么办呢?
[解决办法]报这个错应该不是因为名字空间的问题, 是你的类只声明了, 没有定义.
改成试试:
namespace NS {
class A {};
}
[解决办法]楼主到底在 C 中想怎么用 a 呢,上点代码看看。
[解决办法]use of undefined type,使用了未定义的类型,应该是A只声明没有定义的原因