#include和前置声明(forward declaration) 1.    当不需要调用类的实现时,包括constructor,copy constructor,assignment operator,member function,甚至是address-of operator时,就不用#include,只要forward declaration就可以了. 2.   当要用到类的上面那些“方法”时,就要#include   例子: boy.h #ifndef __BOY__H_ #defi…
http://blog.csdn.net/SpriteLW/article/details/965702…
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前向声明 编程定律 先强调一点:在一切可能的场景,尽可能地使用前向声明(Forward Declaration).这符合信息隐蔽的原则. 一个例子 regmap 那么前向声明究竟是个什么鬼?在内核写代码和看代码的童鞋,经常发现Linux内核里面充斥着这样的代码,比如 include/vim linux/regulator/driver.h…
实验于华中农业大学逸夫楼2017.3.10 在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration).下面的程序中,带注释的那行就是类B的前置说明.这是必须的,因为类A中用到了类B,而类B的声明出现在类A的后面.如果没有类B的前置说明,下面的程序将不同通过编译,编译器将会给出类似"缺少类型说明符"这样的出错提示. 代码一: // ForwardDeclaration.h #include <iostream> using namespace s…
转载自http://www.cnblogs.com/staring-hxs/p/3244251.html 在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration).下面的程序中,带注释的那行就是类B的前置说明.这是必须的,因为类A中用到了类B,而类B的声明出现在类A的后面.如果没有类B的前置说明,下面的程序将不同通过编译,编译器将会给出类似"缺少类型说明符"这样的出错提示. 代码一: // ForwardDeclaration.h #include <…
• 在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration).下面的程序中,带注释的那行就是类B的前置说明.这是必须的,因为类A中用到了类B,而类B的声明出现在类A的后面.如果没有类B的前置说明,下面的程序将不同通过编译,编译器将会给出类似“缺少类型说明符”这样的出错提示. 代码一: #include <iostream> using namespace std; class B; // 这是前置声明(Forward declaration) class A {…
前置声明是指对类.函数.模板或者结构体进行声明,仅仅是声明,不包含相关具体的定义.在很多场合我们可以用前置声明来代替#include语句. 类的前置声明只是告诉编译器这是一个类型,但无法告知类型的大小,成员等具体内容.在未提供完整的类之前,不能定义该类的对象,也不能在内联成员函数中使用该类的对象.而头文件则一一告之. 如:class Screen; 前置声明,也称前向声明(forward declaration).在声明之后,定义之前,类Screen是个不完整类型(incomplete type…
[转自 here] 在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration).下面的程序中,带注释的那行就是类B的前置说明.这是必须的,因为类A中用到了类B,而类B的声明出现在类A的后面.如果没有类B的前置说明,下面的程序将不同通过编译,编译器将会给出类似“缺少类型说明符”这样的出错提示. 代码一: // ForwardDeclaration.h #include <iostream> using namespace std; class B; // 这是前置声明…
在使用Qt的时候遇到这个错误,查了一下发现,是因为我没有正确的使用前置声明. #ifndef FIRSTPAGE_H #define FIRSTPAGE_H #include "ui_dialog.h" //#include <QWizardPage> class QWizardPage; class FirstPage : public Ui::Dialog, public QWizardPage { public: FirstPage(); }; #endif // F…
引用google c++编码规范: When you include a header file you introduce a dependency that will cause your code to be recompiled wheneverthe header file changes. If your header file includes other header files, any change to those files will cause any codethat…