64,648
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
class Wilma
{
public:
Wilma();
void f();
};
Wilma::Wilma()
{
cout<<"Wilma Ctor\n";
}
void Wilma::f()
{
cout<<"Wilma used\n";
}
class Fred
{
public:
Fred();
protected:
class Init;
friend Init;
static Wilma* wilma_;
//Wilma* wilma();
};
class Fred::Init
{
public:
Init()
{
if(count_++==0)
wilma_=new Wilma();
}
~Init()
{
if(count_--==0)
delete wilma_;
}
private:
static unsigned count_;
};
static Fred::Init fredInit;
Fred::Fred()
{
cout<<"Fred ctor\n";
wilma_->f();
}
unsigned Fred::Init::count_=0;
Wilma* Fred::wilma_=NULL;
//Wilma Fred::wilma_;
Fred x;
int main()
{
return 0;
}