| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 180 人关注过本帖
标题:C++中抽象基类能只定义数据成员而把所有成员函数定义为纯虚吗?
收藏  订阅  推荐  打印 
沿途有鬼
Rank: 2
等级:注册会员
帖子:68
积分:882
注册:2008-7-20
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.既然析构函数和构造函数都没有继承性那把它们设置成虚函数是不是都没有任何意义,设置成纯虚函数又有什么意义呢?

[ 本帖最后由 沿途有鬼 于 2008-8-16 18:00 编辑 ]
搜索更多相关主题的帖子: 基类  定义  函数  成员  数据  
2008-8-16 17:44
xlh5225
Rank: 2
等级:注册会员
帖子:146
积分:1682
注册:2007-8-14

让你看 Effective C++,你就是不看!都是同一类问题...
2008-8-16 19:13
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.065846 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved