// Kaoshi.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
class COnlyOne 
{
private :
COnlyOne () ;
public :
~COnlyOne () ;
static COnlyOne * Instante () ;
private :
static COnlyOne * _instante ;
} ;
COnlyOne::COnlyOne ()
{
}
COnlyOne * COnlyOne::_instante = NULL ;
COnlyOne * COnlyOne::Instante ()
{
if (_instante == NULL) 
{
_instante = new COnlyOne() ;
}
return _instante ;
}
int _tmain(int argc, _TCHAR* argv[])
{
COnlyOne * in =  COnlyOne::Instante () ;
return 0;
}// :)  做对了把。

解决方案 »

  1.   

    为什么是private??protected行不行??
      

  2.   

    这句我想了好久,COnlyOne * COnlyOne::_instante = NULL ;最后我改做了C语言的。没办法啊。
      

  3.   

    COnlyOne * COnlyOne::_instante = NULL ; 我是说我这句没有想出来。
      

  4.   

    楼主你也做错了。COnlyOne * COnlyOne::Instante ()
    {
    if (_instante == NULL) 
    {
    _instante = new COnlyOne() ;  
                      //是 _instante=this; 你的答案可以用,但我想可能会判错的。
    }
    return _instante ;
    }
      

  5.   

    to luolovegui(Infinite(无限光)) 注意Instante是类的静态函数,在调用时是不存在对象的,所以this指针无效,而且如果在类的静态函数里用this连编译都通不过!所以正确的写法是new COnlyOne();
      

  6.   


    设计模式  里面的  singleton
      

  7.   

    同学考完回来告诉我说巨简单,他挑Java做的,一个异常处理就搞定……
      

  8.   

    真的?还好,我没有做C++那个,幸好我没有想出 COnlyOne * COnlyOne::_instante = NULL ;谢谢  roger_ding(海天一色) 提醒。