游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3197|回复: 4

C++中设计初始化类的私有成员问题

[复制链接]

10

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2009-2-16 11:54:00 | 显示全部楼层 |阅读模式
如题,类中一个私有成员是实现公共接口时需要使到的变量,必须在使用这个类前初始化.本人选择在构造函数中做这件事.现在问题出现了,这个变量在这个类的使用者看来是毫无用处的。

本人的问题是设计一个Bitmap类,类中需要创建一个表面来存放位图数据.而创建这个表面需要一个全局diectdraw变量来创建表面.当然本人可以选择在Bitmap类中放置一个static变量,然后在构造函数中传递某个参数初始化directdraw。
请教高手,如何让这个bitmap类的使用者无需自己传递directdraw指针,就能使用这个类的对象。而这个类实现时使用的directdraw指针在某处由类设计者固定地初始化一次呢?

6

主题

47

帖子

49

积分

注册会员

Rank: 2

积分
49
发表于 2009-2-16 13:51:00 | 显示全部楼层

Re:C++中设计初始化类的私有成员问题

不知道你是否用单件模式实现全局diectdraw变量。如果不是的话,那么就用单件模式吧~-~
另外,Bitmap类不应该与directdraw耦合~-~

10

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2009-2-16 14:23:00 | 显示全部楼层

Re:C++中设计初始化类的私有成员问题

谢楼上的提醒,我会改用单件模式.另外如果不将bitmap类和directdraw对象耦合的话,该如何实现 bitmap.draw方法呢?本人不要求代码,简单地指教一下思想就行了.

6

主题

47

帖子

49

积分

注册会员

Rank: 2

积分
49
发表于 2009-2-16 17:53:00 | 显示全部楼层

Re: Re:C++中设计初始化类的私有成员问题

shinidge: Re:C++中设计初始化类的私有成员问题

谢楼上的提醒,我会改用单件模式.另外如果不将bitmap类和directdraw对象耦合的话,该如何实现bitmap.draw方法呢?本人不要求代码,简单地指教一下思想就行了.

将draw交给bitmap,这不妥。进一步讲,bitmap不应该知道directdraw,也不知道如何绘制自己,bitmap只提供绘制所需的数据/接口。具体的绘制任务应该交给其他的对象来实现。也就是说directdraw知道bitmap(假如需求没有变化)。

10

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2009-2-17 14:24:00 | 显示全部楼层

Re:C++中设计初始化类的私有成员问题

多谢楼上,我明白了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 07:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表