句柄类

#ifndef TEST_H_
#define TEST_H_

class Demo
{
private:
	class Cheshire; // 将私有的成员隐藏在Cheshire里边.这个就是句柄类把private部分隐藏起来,还可以减少重复编译。
	Cheshire* smile;
public:
	void initialize();
	int read();
	void change(int);
};

#endif

#include <iostream>
#include "test.h"

using namespace std;

class Demo::Cheshire
{
public:
	int i;
};

void Demo::initialize()
{
	smile = new Cheshire; // smile 是一个指针,
	smile->i = 0;
}

int Demo::read()
{
	return smile->i;
}

void Demo::change(int x)
{
	smile->i = x;
}

int main()
{
	Demo a;
	a.initialize();
	a.change(1314);
	cout << a.read() << endl;

	return 0;
}

你可能感兴趣的:(句柄类)