|
|
如题,本人需要设计一个类Grahic,该类只能拥有一个对象g,而且能在全局范围内任意一个类中都能使用,例如在方法
void sprite::draw
{
DWORD* p_buffer = g.viedo_buffer();
}
本人学习过单件模式,尝试过一种烦琐的方案
class Graphic
{
pubilc:
DWORD* viedo_buffer(); //获取缓冲指针
static instance(); //获取实例
....
private:
Graphic(); //构造函数
static Graphic* g;
}
然后在某个类的方法中
sprite::draw()
{
DWORD* buffer = Graphic::instance()->video_buffer();
}
但是感觉比只要包含iostream库就能安全使用cout对象实在烦琐多了。本人过去学C语言时是设计一个全局函数get_video_buffer()解决这个问题的。请大虾给我指点一下,如何设计出类似cout那样可以全局唯一使用又不用担心初试化或者被修改的对象。 |
|