代码改变世界

随笔档案-2013年05月

[转]C++中头文件相互包含的几点问题

2013-05-31 10:53 by Ball Cactus, 342 阅读, 收藏,
摘要: 转自:http://www.sf.org.cn/article/base/200808/21170.html一、类嵌套的疑问C++头文件重复包含实在是一个令人头痛的问题,前一段时间在做一个简单的数据结构演示程序的时候,不只一次的遇到这种问题。假设我们有两个类A和B,分别定义在各自的有文件A.h和 B.h中,但是在A中要用到B,B中也要用到A,但是这样的写法当然是错误的:class B;class A{public:B b;};class B{public:A a;};因为在A对象中要开辟一块属于B的空间,而B中又有A的空间,是一个逻辑错误,无法实现的。在这里我们只需要把其中的一个A类中的B类. 阅读全文

[转]在头文件里避免使用using namespace XXX;

2013-05-31 09:45 by Ball Cactus, 231 阅读, 收藏,
摘要: 转自:http://yongkai.blog.51cto.com/1290440/551999作为一个C++的最佳实践(Best Practice),我们可以说尽量避免在头文件中使用C++的using namespace XXX;为什么呢?因为头文件经常被包含在其他的头文件和cpp文件中。C++的编译器直接就把头文件字符串拷贝过来,这样就强制让另外的头文件和cpp也using namespace XXX; 这有时候可能会造成麻烦。比如说:在A.h中using namespace std;在B.h中,我们自己定义了一个类vector,class vector本想这个类是纯粹我们自己定义的,不是s 阅读全文