标题:C++中抽象基类能只定义数据成员而把所有成员函数定义为纯虚吗?
只看楼主
沿途有鬼
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-7-20
 问题点数:0 回复次数:1 
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:00 编辑 [/it]]
搜索更多相关主题的帖子: 基类 定义 函数 成员 数据 
2008-08-16 17:44
xlh5225
Rank: 2
等 级:论坛游民
威 望:2
帖 子:188
专家分:25
注 册:2007-8-14
得分:0 
让你看 Effective C++,你就是不看!都是同一类问题...
2008-08-16 19:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-228622-1-1.html




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

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