sinat_30071459
小咸鱼_
采纳率66.7%
2016-12-13 03:28 阅读 2.0k

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

10

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    nanjun520 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 评论 复制链接分享
  • u010655288 SadVSSmile 2016-12-13 05:06

    不用B的头文件,需要一个A的头文件就可以了。

    点赞 评论 复制链接分享

相关推荐