c++ 两个类互相引用的问题
来源:互联网 发布:淘宝下单后商品下架了 编辑:程序博客网 时间:2024/06/13 01:57
现在有两个类要相互应用时,会出现各种各样的问题,首先看第一个例子:
#ifndef AH#define AHclass B;class A { B *memb; A() { } ~A() { delete memb; }};#endif头文件A.h包含class A如上:
#ifndef BH#define BHclass B { };#endif头文件B.h包含classB
此时编译就会产生类似上面的警告信息:warning C4150: 删除指向不完整“B”类型的指针;没有调用析构函数
此时因为在class A 中的B 的声明是依赖B的前置声明,而不是#include"b.h"所以,B对A来说是不可见的,因此无法调用析构函数。
如果这时class A 和class B相互应用对象:如下代码:
A.h
#ifndef AH#define AHclass B;class A { B b;};#endif
B.h#ifndef BH#define BH#include "A.h"class B { A a;};#endifB 对于A来说还是不可见的,所以定义会报错;即使在A.h中包含#include"b.h"这时会出现相互包含的问题,相互的定义都无效。此种状况的解决利用前置声明定义的那个类中的保持另外一个类的引用定义为指针,定义指针时不需要对那个类的定义可见
阅读全文
0 0
- c++ 两个类互相引用的问题
- c++中两个类互相引用的问题
- C++中关于两个类互相引用的问题
- C++ 两个类互相引用
- 两个类互相包含的问题
- C++中两个类互相引用的解决方法
- C++中两个类互相引用的解决
- c++中两个类互相持有对方引用的方法
- C++中两个类互相引用的解决方法
- (c++)两个类相互包含引用的问题
- 两个互相引用对象的垃圾回收
- 两个互相引用对象的垃圾回收
- MFc 两个类头文件互相引用
- C++中两个类互相引用
- C++ 两个类头文件互相引用
- C++中两个类中互相引用
- C++中基础类互相引用带来的问题
- C++中基础类互相引用带来的问题
- 细说Web API中的Blob
- Thinking in Java 读书笔记 第六章 访问权限控制
- 第七周 项目2
- 安装完CentOS7后源的配置
- 集合源码学习(七):HashMap(Java8)
- c++ 两个类互相引用的问题
- 银行定期存款
- 软考之路--操作系统
- 关于Oracle中各个命中率的计算以及相关的调优总结
- JVM设计原理与实现——虚拟机概述
- linux 或者 mac 安装mysql 忘记密码解决办法
- 1、画一个三角形
- 包含(后代)选择器和子选择器的区别
- AltiumDesigner中常用快捷键