
































































stdafx.h
#pragma once
#include <iostream>
#include <tchar.h>
#include <objbase.h>
非接口通信
不知读者是否还记得前面我们提到过:客户和组件之间只是通过接口进行通信。但程序清单中的客户却没有遵循这一规则。在那里,客户与组件间的通信是通过一个指向类 CA 的指针而不是通过指向接口的指针完成的。使用指向 CA 的指针要求客户知道类以的定义(通常是一个头文件)。在类 cA 的声明中有许多有关实现的细节。对这些实现细节的修改将使得客户必须被重新编译。但前面已经讲过,增加或减少组件的接口不应打断已有的客户。这就是我们为什么一再坚持客户和组件之间只应通过接口进行通信。记住,接口是由没有实现细节的虚纯基类实现的。