c++ primer 类与对象(3) 学习记录

#include<iostream>
using namespace std;
struct X{
    int rem,base;
    X(int i,int j):base(i),rem(base%j) { }
    //构造函数的初始化顺序应该和声明顺序相同
    //错误:先初始化base,就需要先声明base,否则编译器不一定会报错!
};
///
class Sales_data{
private:
    string BookNo;
    unsigned UnitsSold;
    double Revenue;
    istream& Read(istream& is){
        is >> BookNo >> UnitsSold >> Revenue;
        return is;
    }
    ostream& Write(ostream& os) const{
        os << BookNo << " " << UnitsSold << " " << Revenue << endl;
        return os;
    }
public:
    Sales_data(string s ):BookNo(s) { }
    Sales_data(string s,unsigned cnt,double rev):BookNo(s),UnitsSold(cnt),Revenue(rev*cnt) { }
    Sales_data(istream& is) {Read(is);}
    void Write_data() const{
        Write(cout);
    }
};

//辅助变量和临时变量用小写
//常量用大写字母和下划线命名
//类成员变量、局部变量用帕斯卡命名
//函数命名分为动作命名,和名称命名
//函数命名要精准,不要在函数内容中假如隐藏逻辑
int main(int argc, char const *argv[])
{
    Sales_data next(cin);
    next.Write_data();
    //个性化初始化实例
    Sales_data last("9-999-99999-9");
    last.Write_data();
    //bookno赋值成功,另外的两个变量系统随机初始化成一个数值
    return 0;
}
/*Book类需要变量:价格Price,编号Code,版本Edition,作者Author,书名Name
需要函数:输入函数inputBook,输出函数outputBook,构造函数
进一步:可以有指向下一本书的指针*/
/*Tree类需要变量,根节点指针Root,父节点指针Parent,子节点指针Left和Right,模板类型元素Data
需要函数:构造函数(递归实现),打印函数(递归实现,迭代实现),查找函数(递归实现,迭代实现),插入函数(顺序实现)*/



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值