C++侯捷 学习记录 (一)

P3 构造函数

观察的点 : 数据在private
有没有 const
传递是否时 reference
临时变量不能返回引用

class  complex
{
public:
	complex(double r = 0, double i = 0)  (1)
		: re(r), im(i)
	{}
	// inline funtion 特性比好 
	double real() const { return re; }   //若函数在类内定义完成 自动成为inline 候选人
	double imag() const { return im; }
private:
	double re, im;
};

在这里插入图片描述
初始化 阶段 设置初值
double r = 0, double i = 0 默认参数
complex(double r = 0, double i = 0)
: re® , im(i)
{}

赋值 效率比较差
complex(double r = 0, double i = 0)
{
re = r;
im = i;
}

complex() : re(0), im(0) {} // ?

这样的不带参数 重载不可以 因为已经有了 (1) 这个 构造函数 且有默认值
原则 构造函数可以重载 但是不能有歧义
在这里插入图片描述
const 关键字 不改变数据 数据可读不可写
eg : 建一个 常量对象
如果 double real() const { return re; } 中const 不存在 则 无法运行成功
在这里插入图片描述

const complex c2(2, 1);
	cout<<c2.real();
	cout<<c2.imag();

值传递和 引用
1 类对象作为函数形参,标准传递方式是 reference 避免拷贝类对象花费不必要的开销
2 函数返回值是一个内置类型,或者临时对象时则需要按值传递 pass_by_value
在这里插入图片描述

return value vs reference

在这里插入图片描述

相同 class obj 互为友元函数

针对 int fun 函数 为什么可以直接调用 (简单理解为 一个妈生的 相互拿钱)
在这里插入图片描述

操作符重载与临时对象

所有的成员带着一个 隐藏函数 this 谁调用 谁就是this
链式编程 返回引用
传进去的是指针 ,返回的是指针所指向的内容 即 objcet. 接收的是一个引用ref, 没有关系 ,如果是void 则不能继续进行± ;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值