`
_jia_shun
  • 浏览: 27980 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

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

 
阅读更多
//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;
}

 

分享到:
评论

相关推荐

    C++大学教程,一本适合初学者的入门教材(part1)

    7.10 代理类 7.11 有关对象的思考:在电梯模拟程序中使用复合和动态对象管理 小结 术语 自测练习 自测练习答案 练习 第8章 运算符重载 8.1 简介 8.2 运算符重载的基础 8.3 运算符重载的限制 8.4 用作类成员与...

    C++大学教程,一本适合初学者的入门教材(part2)

    7.10 代理类 7.11 有关对象的思考:在电梯模拟程序中使用复合和动态对象管理 小结 术语 自测练习 自测练习答案 练习 第8章 运算符重载 8.1 简介 8.2 运算符重载的基础 8.3 运算符重载的限制 8.4 用作类成员与...

    C++大学教程

    C++大学教程(目录) 第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机--------...

    C++ Qt设计模式(第二版).rar

    《C++ Qt设计模式(第二版)》是美国萨福克大学的一份经典教程,它深入浅出地讲解了如何在C++编程中运用Qt框架,并结合设计模式来构建高效、可维护的软件系统。这份教程的核心在于将面向对象的设计原则与实际的Qt库相...

    Java语言程序设计第五版答案.rar

    9. **反射与动态代理**:反射允许程序在运行时获取类的信息并操作类的对象,动态代理则在运行时创建代理对象,实现代理模式。 10. **泛型**:泛型提供了类型安全的集合,避免了类型转换的麻烦,并提高了代码的...

    ns2网络模拟简易实用教程

    ### ns2网络模拟简易实用教程知识点详述 #### NS简介:面向对象的网络模拟器 NS,即Network Simulator,是一款由加州大学伯克利分校开发的面向对象、基于离散事件驱动的网络环境模拟器。它能够精确地模拟各种IP...

    TAO编程指南.doc

    由美国华盛顿大学的Douglas C. Schmidt教授领导开发,遵循CORBA 2.6规范。TAO作为一个开源项目,为开发者提供了强大的工具和库来构建复杂的分布式应用程序。 #### 2. 编译ACE/TAO/CIAO - **目录结构**: 描述了TAO...

    a.tcl ns2仿真

    《使用ns2进行WSN仿真的基础教程》 在无线传感器网络(Wireless Sensor Networks, WSN)的研究和开发过程中,仿真工具起着至关重要的作用。ns-2是一款广泛使用的网络模拟器,它允许研究人员和工程师模拟网络行为,...

    VC 程序设计VC 程序设计.doc

    《VC++开发GIS教程》由徐州师范大学城市与环境学院GIS教研室编写,旨在教授读者如何使用VC++这一编程工具进行地理信息系统(GIS)的开发。本教程覆盖了从基础的程序设计概念到具体使用VC++语言实现GIS应用的多个方面...

    MySQL5.1参考手册官方简体中文版

    张伟,华东交通大学。 摘要 这是MySQL参考手册 它涉及MySQL 5.1至5.1.2-alpha版本。 文档生成于: 2005-11-15 -------------------------------------------------------------------------------- 目录 ...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    无论是刚开始接触面向对象编程的新手,还是打算转移到c#的具有c,c++或者java基础的程序员,都可以从本书中吸取到新的知识。 作译者 john sharp,content master首席技术专家。content master隶属于cm集团,cm集团...

    NS2仿真软件详细介绍

    2. **基于C++和OTcl的编程层次**:当NS2现有的网络元素无法满足需求时,可以通过扩展NS2的功能,即添加新的C++和OTcl类来实现自定义的网络元素。 #### 仿真的一般过程 1. **配置网络拓扑**:确定网络的拓扑结构、...

Global site tag (gtag.js) - Google Analytics