#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
需要函数:构造函数(递归实现),打印函数(递归实现,迭代实现),查找函数(递归实现,迭代实现),插入函数(顺序实现)*/
c++ primer 类与对象(3) 学习记录
最新推荐文章于 2024-07-20 22:49:13 发布