C++编程思想第三章例子代码(三)句柄

关键词calss(类)与struct作用相近,但缺省关键词不同

类class(缺省类型为private)

struct (缺省类型为public)

句柄 类(handle class)的作用:便于修改一个类,减少重复编译

//例子中,头文件中只包含公共接口和一个简单的未完全指定的类指针
//:HANDLE.H--Handle classes
#ifndef HANDLE_H_
#define HANDLE_H_
	class handle{
		struct cheshire;
		cheshire* smile;
	public:
		void initialize();
		void cleanup();
		int read();
		void change(int);
	};
#enddef

//:HANDLE.CPP-Handle implementation
#include"handle.h"
#include<stdlib.h>
#include<assert.h>
//define handle's implementation
struct handle::cheshire{            //对类指针按照需求进行定义
	int i;
};
void handle::initialize(){
	smile=(cheshire*)malloc(sizeof(cheshire));
	assert(smile);
	smile->i=0;
}
void handle::cleanup(){
	free(smile);
}
int handle::read(){
	return smile->i;
}
void handle::change(int x){
	smile->i=x;
}

//:USEHANDLE.CPP--use the handle class
#include<handle.cpp>
main(){
	handle u;
	u.initialize();
	u.read();
	u.change(1);
	u.cleanup();
}


猜你喜欢

转载自blog.csdn.net/qq_25188995/article/details/80263675