[Boolan]C++面向对象高级编程(上)第一周笔记

头文件与类的声明

1.类的一种分类:带指针与不带指针的

2.<>包编译环境已有的头文件

3.“”包自己写的头文件

4.防卫式声明:

#ifndef_COPLEX_

#define_COPLEX_

#endif

防止第二次include重复操作

5.头文件布局

前置声明

类声明

类定义

6.模板,类少量改动时,使用模板减少重复代码

Template

//T是类里要替换的部分


构造函数

1.inline在本体内定义。函数“比较快”

2.inline只是一个对编译器的建议,实际执行不一定

3.private不能在外部被访问,public可以

4.受过专业训练的构造函数写法:(带初值列)

Complex(double r

= 0, double I = 0):re(r), im(i){}//=后的0为默认参数

如果在{}里写“初值”,相当于放弃了初始化的阶段

5.多数不带指针的类不用写析构函数

6.构造函数的重载(overloading)编译之后同名函数将不同名;重载函数不能有歧义

7.(问题)创建对象时,在后面带括号和不带括号有什么区别?

查阅结果:new关键字创建对象时对于内置类型:加括号会初始化,不加括号不初始化;对于自定义类型,都会调用默认构造函数,加不加括号没区别。

来源:http://blog.csdn.net/spaceyqy/article/details/22730939


参数传递与返回值

1.构造函数能放在private区Singleton

2.const complex&常引用,地址传参,不改变原值

3.不改变值的成员函数,()后加上const,这样如果之后定义了一个const的对象,再使用这个函数不会报错

4.函数返回类型后加&返回引用

5.friend自由取得friend的private成员

6.相同class的各object互为友元

7.不能返回函数内部局部变量的引用


操作符重载与临时对象

1.Typename()也是强制类型转换,临时对象,这类返回不能用引用,生命周期到下一行就结束。

2.Cout是ostream的一个对象

3.调用成员函数的对象,在函数里会有一个this指针指向它

4.操作符重载最好返回引用,因为用户有可能用操作符连用

5.函数里产生了局部对象(local object),返回时不可以返回引用

6.<<操作符在重载时,考虑连用的话应该返回ostream&

你可能感兴趣的:([Boolan]C++面向对象高级编程(上)第一周笔记)