| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1378 人关注过本帖
标题:C++中抽象基类能只定义数据成员而把所有成员函数定义为纯虚吗?
只看楼主 加入收藏
沿途有鬼
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-7-20
收藏
 问题点数:0 回复次数:1 
C++中抽象基类能只定义数据成员而把所有成员函数定义为纯虚吗?
C++中抽象基类能只定义数据成员而把所有成员函数定义为纯虚吗?
class Cd
{
private:
    char performers[50];
    char label[20];
    int selections;
    double playtime;
public:
    virtual Cd(char * s1,char * s2,int n,double x)=0;
    virtual Cd(const Cd & d)=0;
    virtual Cd()=0;
    virtual ~Cd()=0;
    virtual void Report()const=0;
    virtual Cd & operator=(const Cd & d)=0;
};

既然说抽象类不能创建对象而抽象类中的成员函数可以不提供实现,我想问:

1.那Cd::Cd(char * s1,char * s2,int n,double x)=0;在源文件中如果提供了实现,那这个构造函数的实现会起作用吗?

2.如果都不提供实现把成员函数包括构造,析构函数全部设为纯虚函数那要初始化成员的时候怎么办呢?是不是不能把复制构造函数,析构函数之类的重要函数设为纯虚呢?

3.既然析构函数和构造函数都没有继承性那把它们设置成虚函数是不是都没有任何意义,设置成纯虚函数又有什么意义呢?

[[it] 本帖最后由 沿途有鬼 于 2008-8-16 18:01 编辑 [/it]]
搜索更多相关主题的帖子: 基类 定义 函数 成员 数据 
2008-08-16 17:45
promachus
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-11-12
收藏
得分:0 
1.你得想想什么时间会用到虚函数,是在对象建立后才会用到,而构造函数运行时,对象还未建立起来,所以构造函数不能声明为虚函数。
2.如果是基类,建议析构函数为虚函数。这样,无论指针指向同一类族中任意对象,当对象撤销时,系统会采用动态关联,调用相应的析构函数,对该对象进行清理工作。
3.这个,我看不用回答了吧。
2008-08-18 17:19
快速回复:C++中抽象基类能只定义数据成员而把所有成员函数定义为纯虚吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020554 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved