【C++】类与对象
类的声明
class Stock//某人持有的股票
{
private://私有成员,只能通过公用方法间接访问
std::string company;//股票所属公司
long shares;//持股数量
double share_value;//股票单价
double total_value;//股票总值
void set_tot(){total_value=shares*share_value;}//内联函数,计算股票总值
public://公用方法,声明函数头即可
buy();
sell();
show();
};
//在类外定义内联函数,使用inline标识符
inline void Stock::set_tot()
{
total_value=shares*share_value;
}
//在类外定义类方法
void Stock::sell(long num,double price)
{
...
}
类的初始化
构造函数
作用:在创建对象时自动对其初始化
//定义
Stock(const string &com,long n==0,double pr=0.0)
//分别给company、shares、share_value提供值
//调用
Stock garment ("Furry Mason",50,2.5)
//与new一起使用
Stock *pstock = new Stock("Furry Mason",18,19.0)
析构函数
作用:清除对象,释放内存
在没有显式声明而需要删除对象时,编译器会隐式地声明一个默认析构函数
//声明
Stock::~Stock()
{
//可以为空
//可以添加提示性语句来提示其被调用
}
//调用
~Stock();
this指针
//一个用来比较两个对象中某成员值的大小的函数
const Stock & topval(const Stock &s) const;
//const Stock& 表明函数返回一个const引用
//括号内的const 表明不会修改被显式访问的对象
//括号后的const 表明不会修改被隐式访问的对象
//调用
top=stock1.topval(stock2);
top=stock2.topval(stock1);
//两种调用等价,top会被赋值为股价总值较高的对象
//括号内的是被显式访问的对象,括号外的是被隐式访问的对象
this 指针的使用场景
const Stock & Stock::topval(const Stock& s) const
{
if(s.total_value>total_value) return s;
else return *this;
}
头文件
固定格式,防止该头文件被同一源文件多重调用
#ifndef 标识
#define 标识
……
……
#endif
标识的命名规则:
1.使用头文件名称
2.字母全大写,前后加下划线_ ,如果包含“.”,也替换成下划线_
示例:#ifndef _STOCK10_H_