返回介绍

4.1 一个超级类 - 点

发布于 2025-02-24 22:44:38 字数 1175 浏览 0 评论 0 收藏 0

我们将在这章以一个基本的画图程序作为开始。这里是是我们乐意拥有的其中一个类的快速测试如下:

#include "Point.h"
#include "new.h"

int main (int argc, char ** argv)
{  
  void * p;

     while (* ++ argv)
     {  
    switch (** argv) {
          case 'p':
             p = new(Point, 1, 2);
             break;
          default:
             continue;
        }
        draw(p);
        move(p, 10, 20);
        draw(p);
        delete(p);
     }
     return 0;
}

对于每一个命令参数以字符 p 开始,我们获得一个新的绘图的点,移动这个点到某处,从新绘制,并且删除。标准化 C 语言不包含图形化输出标准的函数:然而,如果我们坚持产生一幅图片,我们能够发表文本,对于这个文本 Kernighan 的图片 [Ker82] 能够理解:

$ points p
"." at 1,2
"." at 11,22

坐标对于测试是无关紧要的 - 从商业和面向对象的说法解释:“点就是一则消息。”

我们用这个点能做些什么呢? new() 将产生一个点,并且构造器期望着初始化坐标作为进一步的参数传进 new() 。通常, delete() 将回收我们的点并且按照惯例调用析构器。

draw() 安排点被显示出来。由于我们希望与其他图形对象协同工作 - 因此在测试程序中会有 switch - 对于 draw() 我们将提供动态连接。

move() 通过传递一系列参数来改变点的坐标。如果我们实现每一个图形对象,这些对象都与它涉及的点关联,我们将能够通过简单的应用这个点的 move() 方法来移动它。因此,对于 move() 在不需要动态连接的情况下我们应该可以做。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文