首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

命名空间的一个疑点

2013-08-04 
命名空间的一个疑问?有这样的声明: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只声明没有定义的原因

热点排行