C++类信息的隐藏

2014-11-24 09:46:42 · 作者: · 浏览: 0

C++编程思想里的一个例子。

先看代码:

handle.hpp

[cpp]
#ifndef HANDLE_H_
#define HANDLE_H_

class handle {
struct cheshire; //这里通知编译器cheshire是个结构体,结构体的定义编辑器将在cpp中找到
cheshire* smile;

public:
void initialize();
void cleanup();
int read();
void change(int);
};

#endif // HANDLE_H_

handle.cpp
[cpp]
#include
#include "handle.hpp"

using namespace std;


struct handle::cheshire {
int i;
};

void handle::initialize() {
smile = new cheshire();
smile->i = 11;
}

void handle::cleanup() {
if(smile){
delete smile;
smile = NULL;
}
}

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

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

int main(){
handle h;
h.initialize();
h.change(888L);
std::cout<< (h.read());
return 0;
}
[cpp]

[cpp]

这种风格可以用在隐藏类的信息。(主要功能)

也可以减少编译时间。如果cheshire的组成改变了,之需要编译一个cpp。(按这种写法,cheshire是不易复用的)