C++中怎样定义一个类,这个类只能定义一个对象?

hpp1981 2009-12-12 08:57:19
谁知道
...全文
570 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
guolihui112 2009-12-13
  • 打赏
  • 举报
回复
构造和析构函数私有化, 然后声明一个 friend 类. 只有这个 friend 类可以构造它. 一般这个 friend 类是一个 Singleton 的框架类.
gueangyik 2009-12-13
  • 打赏
  • 举报
回复
用class 定义一个类 这个类可以定义多个对象
lirg8405 2009-12-13
  • 打赏
  • 举报
回复
上面的都说了,我也认为是用static
t525181273 2009-12-13
  • 打赏
  • 举报
回复
用static类型,将其定义成常量对象。你申明再多的对象就都转向他一个,我想就可以啦
周成风 2009-12-13
  • 打赏
  • 举报
回复
singleton!!!

这应该是我用的最多的设计模式。。
xhkui123 2009-12-13
  • 打赏
  • 举报
回复
哦 我有学到了些东西!
fouryu 2009-12-13
  • 打赏
  • 举报
回复
9楼正解!但是9楼的private中的static变量应该换成"static A* a=NULL"吧?

另外有人提到“单件就不应该存在”,这个主要是因为这种模式很隐晦的产生了全局变量,会造成软件不好维护。在Google的视频中有一些关于这个的,英文好的可以下下来看看:)
ClassDan 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ypb362148418 的回复:]
构造函数前加static修饰,也就是设计模式中的单件模式
[/Quote]

学习了~~
tanghuang900 2009-12-13
  • 打赏
  • 举报
回复
用class定义类,类可以定义多个对象。
L2740611032 2009-12-12
  • 打赏
  • 举报
回复
单例模式:
在类的构造函数设为private
并设一个static类型的 对象变量在类的内部
并且提供一个接口来实现对static 对象实例化
这样就只能声明一个对象了!
class A
{
private:
A();
static A a;
public:
static A getInstance()
{
if(a)
return a;
else
{
a=new A();
return a;
}
}
};
int main()
{
A b=A::getInstance();//这样就只能声明一个对象了;
}
WingForce 2009-12-12
  • 打赏
  • 举报
回复
也有人认为,单件就不应该存在
zhangrenhui 2009-12-12
  • 打赏
  • 举报
回复
.h文件中定义

class a
{
public:
static a * Instance();
static a * m_pInstance;
public:
a();
~a();
};


.cpp中实现
a* a::m_pInstance = NULL;
a* a::Instance()
{
if( !m_pInstance )
{
m_pInstance = new a();
}

return a;
}

a::a()
{
}

a::~a()
{
}

在其他文件中采用a::Instance()->加你所要的操作或数据成员
  • 打赏
  • 举报
回复
楼主可以看看设计模式。

这里可以用单件模式。
http://www.cppblog.com/dyj057/archive/2005/09/20/346.aspx

参考这里的Singleton
lovesi3344 2009-12-12
  • 打赏
  • 举报
回复
这个类可以定义不止一个对象

//定义一个类
class base
{
...//此处忽略细节
};

int main()
{
base a,b;//定义了不止一个类对象
}
go_Michael 2009-12-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mstlq 的回复:]
请google“单件模式”……
[/Quote]


授人以鱼不如授人以渔
mstlq 2009-12-12
  • 打赏
  • 举报
回复
请google“单件模式”……
ypb362148418 2009-12-12
  • 打赏
  • 举报
回复
构造函数前加static修饰,也就是设计模式中的单件模式
senr0816 2009-12-12
  • 打赏
  • 举报
回复
使用类的静态成员变量进行判断

64,660

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧