C++Book对象数组初始化

已声明Book类,要求完成类中函数的定义,并编写main函数完成如下的功能。

定义含5个Book对象的数组b,定义同时将b[0]~b[3]分别初始化为(1,10),(3,30),(5,50),(8,80);
根据输入的数据给b[4]的成员赋值;
逆序输出对象数据成员qu * price的值,每个数据后带一个空格。
函数接口定义:
class Book{    
    public:
        Book(int _qu=0);//_qu赋值给qu,price为qu的10倍
        int getqu();    
        int getprice();   
        void set(int _qu) //_qu赋值给qu,price为qu的10倍 
    private:
        int qu,price;    
};
int main()
裁判测试程序样例:
#include <iostream>
using namespace std;
class Book{    
    public:
        Book(int _qu=0);
        int getqu();    
        int getprice();  
        void set(int _qu);      
    private:
        int qu,price;    
};
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:

2
输出样例:
40 640 250 90 10 

思路一:

Book::Book(int _qu){
    set(_qu);
}              //Book 类的构造函数的定义,接受一个整数 _qu 作为参数,并调用 set 函数来设置 qu 和 price 成员变量的值。

int Book::getqu(){
    return qu;                        //Book 类的成员函数,用于获取对象的 qu 成员变量的值。
}
int Book::getprice(){
    return price;                     //Book 类的成员函数,用于获取对象的 price 成员变量的值。
}
void Book::set(int _qu){
    qu=_qu;
    price=qu*10;
}                    //Book 类中的 set 函数用于设置 qu 成员变量的值,并根据规则计算 price 的值。

int main(){
    Book b[5]={Book(1), Book(3), Book(5), Book(8)};      // 初始化前4个对象
    
    int n;
    cin>>n;
    b[4].set(n);          // 输入第五个对象的数据

    for(int i=4;i>=0;i--){
        cout<<b[i].getqu() * b[i].getprice()<<" ";
    }                                              // 逆序输出对象数据成员 qu * price 的值
    return 0;
}

 思路二:

Book::Book(int _qu):qu(_qu){}

int Book::getqu(){
    return qu;    //Book 类的成员函数,用于获取对象的 qu 成员变量的值。
}
int Book::getprice(){
    return 10*qu; //Book 类的成员函数,用于获取对象的 price 成员变量的值。
}
void Book::set(int _qu){
    qu=_qu;
}     

int main(){
   Book b[5]={1,3,5,8};  //单参数构造函数来执行隐式转换,过提供整数值 {1, 3, 5, 8},这些整数值会被隐式转换为 Book 对象,并且被用来初始化数组的前四个元素。
    
    int n;
    cin>>n;
    b[4]=Book(n);  // 输入第五个对象的数据

    for(int i=4;i>=0;i--){
        cout<<b[i].getqu() * b[i].getprice()<<" ";
    }  // 逆序输出对象数据成员 qu * price 的值
    return 0;
}

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值