CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

纯虚类的constructor和destructor怎么写?

楼主geogeo(多级队列反馈轮转法)2003-06-02 22:21:47 在 C/C++ / C++ 语言 提问

小弟刚学C++,这两天做design   pattern的练习,在这里问个很弱的问题:  
          为了实现一个Bridge模式的堆栈,写一个StackImp虚类,它有两个实际子类ArrayImp和ListImp,分别实现数组和链表结构的堆栈操作,代码大致如下:  
  Class   StackImp{  
  public:  
          StackImp();  
          ~StackImp();  
          virtual   void   push(int   val);  
          ...  
  }  
  Class   ArrayImp:public   StackImp{  
  public:  
          ArrayImp();  
          ...  
  private:  
          int   _array[];  
          int   _size;  
          int   _cp;  
  }  
  ...  
   
  程序中直接把push、pop的操作传递到StackImp的具体子类中了,  
  请问作为纯虚类的StackImp的构建函数和析构函数怎么写?  
  还有StackImp中需要定义private的内容吗?如果要,怎么定义? 问题点数:100、回复次数:5Top

1 楼luohualiushui(落花流水)回复于 2003-06-02 22:53:12 得分 20

Class   StackImp{  
  public:  
          StackImp();  
          ~StackImp();  
          virtual   void   push(int   val);  
          ...  
  }  
  这不是纯虚类  
  Class   StackImp{  
  public:  
          StackImp()=0;  
          ~StackImp()=0;  
          virtual   void   push(int   val)=0;  
          ...  
  }  
  这才是纯虚类  
  一般没有构造函数  
  Top

2 楼micropentium6(小笨|曾经的美好)回复于 2003-06-02 23:01:50 得分 20

Class   StackImp{  
  public:  
          StackImp();  
          virtual   ~StackImp();  
          virtual   void   push(int   val)=0;  
          ...  
  }  
  Top

3 楼lplpzhuzhu(猪猪)回复于 2003-06-03 09:34:14 得分 20

纯虚类有构造函数和析够函数,而且他们的实现方法跟一般的类的一样,可以根据需要随便写。比如,构造函数可以初始化某个东西,析构函数可以释放资源。  
  纯虚类不能用来定义某个对象,就是说不能实例化,只有继承他的子类才能实例化。  
  Top

4 楼pzytony(507)回复于 2003-06-03 17:02:20 得分 20

 
  基本来说纯虚函数是必须被重载的,因此在被用来做基类的抽象类中肯定有一个或多个纯虚函数。  
  而虚函数可以在继承类中被重载,也可以不。  
  二者都是体现了c++的多态性  
  Top

5 楼genny(阿健)回复于 2003-06-04 11:27:35 得分 20

析构函数一般要虚拟函数(看书来的);抽象类的构造函数和析构函数不必要进行什么处理吧。  
  抽象类只是提供接口,定义了private有什么用呢?即使真的要,也是存储某函数的结果,有很大用途嘛?只是增加了内存负担。Top

相关问题

  • 为什么 destructor 要是 虚拟函数呢?
  • copy constructor?
  • copy constructor?
  • 为什么NRV优化时一定要求类里声明了COPY CONSTRUCTOR?
  • 我要从一个non virtual destructor的类派生一个类,想解决一个问题。
  • 类中const数组初始化,遇到编译错误must be initialized in constructor base/member initializer list
  • constructor一题?????
  • 求写copy constructor
  • 虚基类和抽象类问题!!
  • 关于“虚基类”和“interface"

关键词

  • c++
  • 函数
  • virtual
  • stackimp
  • 类
  • 纯虚
  • arrayimp
  • 子类
  • 析构
  • 构造

得分解答快速导航

  • 帖主:geogeo
  • luohualiushui
  • micropentium6
  • lplpzhuzhu
  • pzytony
  • genny

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo