
参考资料: 侯捷C++课程.
本文是从C入手C++学习过程中的一些记录. 文中代码均忽略了与对应主题无关的部分, 用 “…” 代替.
- 从C到C++
- 相同class的各个object互为friends
- class body外的各种定义
- *** 作符重载
当看到用相同class的一个object直接用 . 的方式获得另一个object的私有成员变量时, 这个是合法的, 因为它们互为友元.
class body外的各种定义注意:
- 数据一定放在private
- 参数尽量用reference来传递. const与否看情形
- 返回值也考虑用reference来传递
- 在类的本体里面的各种函数, 如果需要加const, 一定要加
- 构造函数有一个特殊的语法, 用冒号引导的 初值表. 要尽量使用它来构造函数
inline complex&
__doapl(mplex* ths, const complex& r)
{
ths->re += r.re;
ths->im += r.im;
return *ths;
}
inline complex&
complex::operator += (const complex& r)
{
return __doapl(this, r)
}
一个函数的 *** 作结果应该放在那里? 两种情况
- 必须创建一个位置来放;
- 可以放在一个传入参数里, 然后return by reference.
如果是创建一个位置(局部变量)的情形, 就不能用reference来传递返回值. 因为局部变量在函数结束时, 生命就结束了. 把它的地址传给别人, 就是错的.
*** 作符重载还没写完.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)