如果要提供一个导出类的dll给用户使用,在对应的头文件里一般要提供该类的定义,包括私有的成员变量,相当于把这个类的结构完全公开给用户,隐藏的只是一些实现细节,这应该不是dll作者想要的。
在网上搜了一下,找到一篇不错的文章,利用c++的封装性和多态性,以工厂类的方式实现对类结构的隐藏。
参考http://blog.sina.com.cn/s/blog_49ba5b720100cwk5.html
个人觉得这篇文章里代码实现的方式不是很好,特修改如下:
BClass.h,真正的类
BFactory.h,抽象基类及工厂类
BFactory.cpp,工厂类的实现
test.cpp,测试代码