面向对象上3-6
3构造函数
内联函数
函数在class内部定义就成为内联函数;或者在外部用inline关键字
内联函数会很快,很好,尽量使用
但最终是否内联,还是要看编译器,过于复杂的函数即使声明内联了,也不一定变成内联
访问级别
- public:一般放函数
- private:一般放数据
构造函数
函数名称和类名称相同
1
2complex()
: re(r)构造函数独特的初始方法,非常推荐使用
带指针的需要写析构函数
构造函数经常重载,函数可以同名,但不能让编译器混淆不知道用哪个
4参数传递与返回
构造函数放在private,就不能创建对象。
但可以用Singleton这个方法不改变数据内容的函数要加const,
否则编译器可能报错参数传递
尽量不要pass by value,
用pass by reference,相当于只传指针4个字节返回值传递
尽量也用by reference
conmplex& operator += (const complex&);
友元函数
朋友可以来使用private中的数据
相同class的objects(对象)互为友元
什么情况不可以by reference
一个新的输出,需要占据新的内存空间
5操作符重载
成员函数
成员函数中的一个参数:this被隐藏。this实际上是一个指向调用者的指针,不能写出来,否则会报错
引用:传递者不用管接受者是不是by reference
换句话说,传递者用value,接收者(函数)用reference
非成员函数
没有this
+不能by reference,+=可以
临时对象,typename(),类似int()
特殊符号<<只能用非成员函数
函数返回类型+是否传引用
函数名称
(参数传递)
const
{函数内容}
6复习复数complex类的实现
- 防卫式常数定义
- Head和Body
- private:数据类型
- public:函数
- 构造函数
- 构造函数初值列
- 构造函数内容
- Body内部设计你想要的函数,操作符重载等
- 成员函数/非成员函数
- 函数类型
- 返回值能不能引用
- 要不要加const
- 参数能不能引用
- 要不要加const
- 友元函数
- Body本体之外的函数
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 C++学习笔记!