【C++】类与对象

2021-02-03 04:16

阅读:622

标签:double   else   防止   隐式   this 指针   类的声明   lan   股价   pre   


类的声明

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_

【C++】类与对象

标签:double   else   防止   隐式   this 指针   类的声明   lan   股价   pre   

原文地址:https://www.cnblogs.com/streamazure/p/12805682.html


评论


亲,登录后才可以留言!