定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员pageCount。

【问题描述】

定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员pageCount。

【输入形式】

程序参考的输入(数据前面文字为提示):

Input Name and Page:Math 280

【输出形式】

程序参考的输出:

Name:Math

Page:280

我写的代码如下:
#include <iostream>
#include<string>
using namespace std;
class Document{    //定义Document类
private:
    string name;
public:
    Document(string nam):name(nam)   //构造函数,构造Document()函数
    {
        cout<<"Name:"<<name<<endl;
    }
    ~Document(){}   //析构函数,释放内存
};
class Book:public Document{   //派生类
private:
    int pageCount;
public:
    Book(string nam,int ag):Document(nam),pageCount(ag)   //构造函数,构造派生类的对象
    {

        cout<<"Page:"<<pageCount<<endl;
    }
    ~Book(){}
};
int main()
{
    int page;
    string name;
    cout<<"Input Name and Page:";
    cin>>name>>page;    //输入name和page
    Book b(name,page);   //传递参数
    return 0;
}

我最难理解的地方如下:

Book(string nam,int ag):Document(nam),pageCount(ag)   //构造函数,构造派生类的对象
    {
        cout<<"Page:"<<pageCount<<endl;
    }

即Book(string nam,int ag):Document(nam),pageCount(ag)
这行代码。
这里有关C++的继承与派生的知识,派生类构造函数的一般语法为:

派生类名::派生类名(参数表):基类名1(基类1初始化参数表),基类名2(基类2初始化参数表),···
{
派生类构造函数的其他的初始化操作;
}
这里的pageCount(ag)不是基类名,是派生类构造函数的形参。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值