c++-前向声明
2014-04-23 16:47
148 查看
c++中类必须先声明,再定义
如果两个类相互引用形成一个环形引用时,无法先定义再使用,这时就要用到前向声明。
前向生命的类不能实例化,只能定义指针或者引用
虽然在头文件中不能include互相包含,但是在定义文件中要用include引用类
下面看一个例子:
如果两个类相互引用形成一个环形引用时,无法先定义再使用,这时就要用到前向声明。
前向生命的类不能实例化,只能定义指针或者引用
虽然在头文件中不能include互相包含,但是在定义文件中要用include引用类
下面看一个例子:
//B.h #ifndef _B_H_ #define _B_H_ class B { private: A a; }; #endif
//A.h #ifndef _A_H_ #define _A_H_ class B; class A { private: B *b; //B b; //error 不能实例化,因为只有类的声明,类的具体细节不知道 }; #endif
#include "A.h" //#include "B.h" //只引入B.h是不对的,但是只引入A.h是对的 int main() { A a; }
相关文章推荐
- C++ 各种全局常量的声明方式的优缺点
- C++ 参数传递,定义与声明,命名空间等基本知识
- C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
- c++模板函数声明定义分离编译错误详解
- C++的前向声明、嵌套类、局部类
- C++默认参数在声明还是定义确定?
- c++ goto后不允许声明
- 深度剖析C和C++的复杂类型声明
- 【C++基础】C++之类的前置声明
- C++模板编程--模板的声明和定义
- C++前向声明(解决类的互相包含问题)
- C++学习总结_声明一个对象并实现声明类的方法
- C++声明和定义的区别
- C++全局变量的声明和定义
- 如何理解c和c++ 的复杂类型声明
- 如何理解c和c++的复杂类型声明
- C++中头文件相互包含与前置声明
- C++声明二维数组
- C++的类的声明及成员变量和成员函数
- c++(重载、覆盖、隐藏)&&什么情况下,类的析构函数应该声明为虚函数?为什么?