小咸鱼_ 2016-12-13 03:28 采纳率: 66.7%
浏览 2143
已采纳

关于封装c++类为DLL的问题

是这样的,我打算封装一个类导出dll,但是这个类的私有成员变量有另一个类
class A
{
privated:
B b;//(B是一个类)
}
那么A类的头文件就得包含B类的头文件,那最终使用封装的dll时,不是就需要A类的头文件和B类的头文件?但是我只想一个dll,一个lib和一个.h。这样应该怎么封装呢?

  • 写回答

2条回答 默认 最新

  • nanjun520 2016-12-13 08:28
    关注

    把你的A实现修改一下

    privated:
    B b;//(B是一个类) ====》privated:
    B *pb;//(B是一个类)
    这样你在A.h里面就不需要包含 include "B.h"文件了,修改为 class B;

    再在A.cpp文件里面 include "B.h" 就可以不需要 B.h文件了。
    在A类里面 就需要new B对象了,还有 A释放的时候 记得 delete pb防止 内存泄露

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP