LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 804|回复: 3

问一个关于抽象类的问题!

[复制链接]
发表于 2006-6-29 13:29:49 | 显示全部楼层 |阅读模式
刚才浏览了一下xerces-c的源代码,发现它在很多地方实例化了抽象类,但是具我所之抽象类好象是不能实例化的呀?!
   不知我说的意思大家明白吗?就xerces-c的源代码中实例化了抽象类这个问题举个例子:

有抽象类InterfaceClass;
另有一个实例类InstanceClass
class InstanceClass {

public:
InstanceClass ():interfaceClass(0) /*就是这里interfaceClass用0作为其构造函数的                           参数,我看到xerces-c的源代码中多次使用了这样的方法*/

private:
InterfaceClass *interfaceClass;

}

    请大家说说这样实例化一个抽象类可以吗?实例化后我可以调用抽象类中已经实现的方法吗?   谢谢回复!
发表于 2006-6-29 15:11:34 | 显示全部楼层
interfaceClass是class InterfaceClass的指针,而不是对象。在初始化列表中只是将该指针初始化为NULL,而并不是对其对象初始化。所以并没有实力化抽象类。

难道楼主不明白指针是什么? :confused:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 18:37:40 | 显示全部楼层
多谢楼上朋友的回复,你说:“interfaceClass是class InterfaceClass的指针,而不是对象。在初始化列表中只是将该指针初始化为NULL,而并不是对其对象初始化。”
    但是我在看xerces-c的源代码时,发现它调用了InterfaceClass的成员函数,那么没有实例化,这又如何能做到呢?
回复 支持 反对

使用道具 举报

发表于 2006-6-29 23:36:35 | 显示全部楼层
调用的应该是他的字类对象的成员函数。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表