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 <iostream>
#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是不易復用的)