文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.1 一个超级类 - 点
我们将在这章以一个基本的画图程序作为开始。这里是是我们乐意拥有的其中一个类的快速测试如下:
#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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论