您的位置:首页 > 编程语言 > C语言/C++

C++大学基础教程_10_10_代理类

2014-07-15 13:54 239 查看
//Implementation.h
//包含欲隐藏的私有实现的类生成类定义
class Implementation
{
public:
Implementation(int v)
:value(v)
{
//空函数体
}
void setValue(int v)
{
value = v;
}
int getValue()
{
return value;
}

private:
int value;
};


//Interface.h
//代理类Interface

class Implementation;//声明
class Interface
{
public:
Interface(int);
~Interface();
void setValue(int);
int getValue() const;
private:
Implementation *iPtr;
};


//Interface.cpp
#include "Interface.h"
#include "Implementation.h"

Interface::Interface(int v)
:iPtr(new Implementation(v))
{
// empty body
}

Interface::~Interface()
{
delete iPtr;
iPtr = 0;
}

void Interface::setValue(int v)
{
iPtr->setValue(v);
}

int Interface::getValue() const
{
return iPtr->getValue();
}


//main.cpp

//#include "Implementation.h"
#include "Interface.h"//只有这一个头文件包含在代码中,!!!
#include <iostream>
using namespace std;

int main()
{
Interface testInt(6);
cout << "Interface contains: " << testInt.getValue()
<< " before setValue." << endl;
testInt.setValue(7);
cout << "Interface contains:" << testInt.getValue()
<< " after setValue." << endl;
system("pause >> cout");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: