码迷,mamicode.com
首页 > 其他好文 > 详细

不同namespace的forward declaration

时间:2015-08-13 21:46:40      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

C++中的forward declaration可以减少文件之间的依赖,加快编译速度。

在相同的namespace中,例如类B包含一个指向类A的指针或引用,类A的forward declaration写法如下:

// b.h
class
A; class B { A *pa; };

今天遇到一个问题,就是A和B在不同的namespace中,不能按上面的写法来写。

正确的写法是在B的头文件写出A所在的namespace然后把前置声明放进去,写法如下:

// a.h
namespace top { namespace first { class A {}; } }
// b.h namespace top { // forward declaration of class A namespace first { class A; } namespace second { class B { first::A *pa; }; } }

不同namespace的forward declaration

标签:

原文地址:http://www.cnblogs.com/haoxin/p/forward_declaration_of_different_namespace.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!