标题:C++单身模式
只看楼主
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
回楼上
#include<iostream>
using namespace std;
class SingleObj{
public:
    static SingleObj* GetSingleObj();
    void dump() const{
        cout<<"this is singleobj.."<<endl;
    }
private:
    SingleObj(){};
    SingleObj(SingleObj &a){}
    static SingleObj *obj;
};

SingleObj* SingleObj::obj=new SingleObj();//这里知道怎么解释吗?
SingleObj* SingleObj::GetSingleObj() {
     return obj;
}
int main(void)
{
    SingleObj::GetSingleObj()->dump();
    SingleObj obj_(*SingleObj::GetSingleObj());
    obj_.dump();
   return 0;
}

学习需要安静。。海盗要重新来过。。
2008-04-23 20:06
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
得分:0 
动态创建SingleObj的对象嘛///不是么?

樱花大战,  有爱.
2008-04-23 20:53
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
看来我还是有点作用域的问题没弄明白,现在好了..以前一直SingleObj* SingleObj::obj=new SingleObj();理解成在类体外面..其实还是在里面..这样就好理解了

学习需要安静。。海盗要重新来过。。
2008-04-23 21:19
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
得分:0 
我感觉C++的作用域比较繁琐....

樱花大战,  有爱.
2008-04-23 21:29
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
得分:0 
这里的static是修饰指针嘛...刚才思考了, 这个不能构成单件模式,而且还有要delete

樱花大战,  有爱.
2008-04-23 21:35
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
恩..我只是为了说明刚的new运算符问题...不删除就内存泄露了

学习需要安静。。海盗要重新来过。。
2008-04-23 21:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-207913-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.574562 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved