如上图,np_utility.h中使用了QString的前置声明,np_utility.cpp文件中包含了QString的头文件,本以为这样没问题,编辑就报错了,后来发现,QString头文件放在np_utility.cpp文件中的np_utility.h之前,QString的前置声明才不会报错。 ...
分类:
其他好文 时间:
2016-09-26 00:51:05
阅读次数:
183
因为引用类型的成员变量定义时需要赋值,不然其所在的类初始化时有编译错误,所以一直以为不能使用引用类型的变量作为成员变量。但在探讨C++的前置声明知识时,发现是可以定义引用类型的成员变量的。如下讲解一下如何使用引用类型的成员变量。//BBB.h
#pragmaonce
classBBB
{
..
分类:
编程语言 时间:
2016-08-25 21:54:16
阅读次数:
199
前置声明的使用 有一定C++开发经验的朋友可能会遇到这样的场景:两个类A与B是强耦合关系,类A要引用B的对象,类B也要引用类A的对象。好的,不难,我的第一直觉让我写出这样的代码: 好的,完成,编译一下A.cpp,不通过。再编译B.cpp,还是不通过。编译器都被搞晕了,编译器去编译A.h,发现包含了B ...
分类:
编程语言 时间:
2016-08-24 14:34:33
阅读次数:
202
几个关键点: 需要前置声明!--奇怪的是别人告诉我也可以不需要,但我这里不行! 友元函数的函数名后面的<>,必须要有。 ...
分类:
编程语言 时间:
2016-07-12 19:38:04
阅读次数:
148
在delete的那个地方,没有#include相应的头文件,而只是用了class的前置声明; 或许delete的是基类指针,而编译器认识基类,所以没有加入子类的#include; 如果在delete子类对象时,要释放基类的内存,一定要记得将基类析构函数写为virtual ; 如果某个类不包含虚函数, ...
分类:
编程语言 时间:
2016-04-09 18:42:31
阅读次数:
574
Qdoc 介绍 Qdoc是开发者用于在软件工程中生成文档的一个工具。它从工程的源文件中提取qdoc类型注释,并以html页面或者DITA XML文档的形式格式化到文件中。Qdoc在.cpp和.qdoc文件中查找注释,而不会在.h文件中查找。一条qdoc注释往往以一个前置声明符号(!)开始,例如: /
分类:
其他好文 时间:
2016-02-23 11:20:18
阅读次数:
1139
一、头文件 1. #define的保护:所有头文件都应该使用#define防止头文件被多重包含(multiple inclusion),命名格式: <PROJECT>_<PATH>_<FILE>_H_ 为保证唯一性,头文件的命名应基于其所在项目源代码树的全路径。 2.头文件依赖:使用前置声明(for
分类:
编程语言 时间:
2016-02-16 23:19:08
阅读次数:
340
关于c++的头文件依赖正在看google c++编程规范,里面对头文件依赖是这么说的:1234567891011使用前置声明(forward declarations)尽量减少.h文件中#include的数量。当一个头文件被包含的同时也引入了一项新的依赖(dependency),只要该头文件被修改,...
分类:
编程语言 时间:
2015-12-30 01:43:04
阅读次数:
345
一、类嵌套的疑问C++头文件重复包含实在是一个令人头痛的问题,假设我们有两个类A和B,分别定义在各自的头文件A.h和B.h中,但是在A中要用到B,B中也要用到A,但是这样的写法当然是错误的:class B;class A{public:B b;};class B{public:A a;};因为在A对...
分类:
编程语言 时间:
2015-12-28 00:44:58
阅读次数:
286