/*
* egg.h
*
* Created on: 2011-08-01
* Author: mweng
*/
#include<iostream>
using namespace std;
class Egg
{
private:
static Egg e;
int i;
Egg(int ii):i(ii){
}
Egg(const Egg &t);
public:
int val(){
return i;
}
static Egg* instance()
{
return &e;
}
};
/*
* egg.cpp
*
* Created on: 2011-08-01
* Author: mweng
*/
#include"../header/egg.h"
Egg Egg::e(110);
/*
* main.cpp
*
* Created on: 2011-08-01
* Author: mweng
*/
#include"../header/egg.h"
#include<iostream>
using namespace std;
int main()
{//不能再新建别的Egg对象
cout<<"Egg number:"<<Egg::instance()->val()<<endl;;
return 1;
}
利用类中静态成员对象的初始化方法,将类的构造函数声明为私有的,在类A中放置一个类A的静态成员对象a,可以通过类访问这个静态对象a,不能创建新的A的实例,在声明私有拷贝构造函数后,使其也不能通过以下方法构造对象:
Egg s1=*Egg::instance();
Egg s2=Egg(*Egg::instance());