WEB开发网
开发学院软件开发VC 接触VC之四:COM组件模型基础 阅读

接触VC之四:COM组件模型基础

 2006-07-19 11:36:48 来源:WEB开发网   
核心提示: 我如果要做一个人的组件对象的话,我首先要定义一些接口来表示人的外部表现行为,接触VC之四:COM组件模型基础(6),class physiology{public:virtual void eat(Food in) = 0;virtual void drink(Liquid in) = 0

我如果要做一个人的组件对象的话,我首先要定义一些接口来表示人的外部表现行为。

class physiology
{
public:
    virtual void eat(Food in) = 0;
    virtual void drink(Liquid in) = 0;
    virtual Somethings toilet() = 0;
};
class psychics
{
public:
    virtual Sound laugh() = 0;
    virtual Sound cry() = 0;
    virtual Sound angry() = 0;
};
class dynamics
{
public:
    virtual Speed run() = 0;
    virtual Speed walk() = 0;
    virtual Interval jump() = 0;
};

我将人的行为分成了生理学、心理学和动力学三类,让它们分别表示人不同的行为。那么,这么三组相关函数就是三个接口。C++组件对象的实现就是从这些接口中多重派生,并实现它们。这样,我们就得到一个组件对象(声明啊,本示例只是一个表示概念,真正的COM组件对象还需要加一些东东)。

class human :
    public physiology,
    public psychics,
    public dynamics
{
public:
    void eat(Food in)
{
  cout << "Good! Very delicious!";
}
void drink(Liquid in)
{
  cout << "No! I am not drunk!";
}
Something toilet()
{
  cout << "hum…….";
  return dejecta();
}
Sound laugh()
{
  return Sound("Ha…Ha…Ha");
}
Sound cry()
{
  return Sound("dad!Don’t beat my buns.");
}
Sound angry()
{
  return Sound("where did you go last night? Darling.");
}
Speed run()
{
  cout << "Run, Police come!";
  return 20km/h;
}
Speed walk()
{
  cout << "out. yegg, I am no…not afraid o….of y…you.";
  return 1m/s;
}
Interval jump()
{
  cout << "Yeah….";
  return 4m;
}
};

这样,一个组件对象就定义完了。当使用组件对象时,系统所给予你的一个指针。它是一个组件对象实现了的虚类指针,我们可以使用它来调用组件对象对于这个纯虚类所实现的功能(当然,我们有选择什么虚类指针的权利;只要组件对象支持就可以了)。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:接触 VC COM

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接