读书人

命名空间的一个疑点

发布时间: 2013-08-04 18:26:16 作者: rapoo

命名空间的一个疑问?
有这样的声明:

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只声明没有定义的原因

读书人网 >C++

热点推荐