/*
Description: 类的成员函数
函数原型必须在类中定义
函数体
1.在类中定义函数体
2.在类外定义函数体
this指针
const成员函数
C++在函数声明时,后面跟个const是限定函数类型为常成员函数, 常成员函数是指不能bai改变成员变量值的函数。
例如“double d() const;”,其中的其中的“const”限定了d()函数中不能有任何改变其所属对象成员变量值的功能,如果有则会在编译阶段就报错。
它的主要作用就是能使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明。在需要增加可读性和减少逻辑出错的情况下,就可以用这种形式。
*/
#include<iostream>
using namespace std;
int sum(int x,int y)
{
return x+y;
}
//销售 项目
class Sales_item //class要变成对象才可以使用!
{
public:
double avg_price() const; //函数原型声明
bool same_isbn(const Sales_item &rhs) const; //这样的形参是是什么意思?const Sales_item是变量的类型 引用
//private:
public:
string isbn;//书号
unsigned units_sold;//数量
double revenue;
};
double Sales_item::avg_price() const
{
if(this->units_sold != 0)
return (this->revenue/this->units_sold);
else
return 0;
}
bool Sales_item::same_isbn(const Sales_item &rhs) const
{
// 当前对象
return this->isbn == rhs.isbn;
}
int main()
{
//类class 对象
Sales_item item1,item2;
item1.isbn = "0-201-78345-x";
item1.units_sold = 10;
item1.revenue = 300.00;
cout<<item1.avg_price()<<endl;
item2.isbn = "0-201-78345-x";
item2.units_sold = 2;
item2.revenue = 70.00;
cout<<item2.avg_price()<<endl;
if(item1.same_isbn(item2))
{
cout<<"这两个sales item是同一种书!"<<endl;
}else{
cout<<"这两个sales item不是同一种书!"<<endl;
}
return 0;
}