教程地址:https://www.bilibili.com/video/BV1K4411974P?p=3
1.C++编程简介
- 培养 正规 大气的编程习惯
基于对象 对于单个类的设计
面向对象 各个类之间的关系
- 头文件与类声明
- C++代码基本形式
- C++与C的输出
cout << "i = " << i << endl; //将 “i = ” i endl 依此输出到标准输出 (如屏幕) ,<< 表示方向
- 头文件中的防卫式声明
第一次引入 未定义 __COMPLLEX__ 则第一次定义
第二次引入 已定义 __COMPLLEX__ 则不会执行下面的代码
以此类推 防止多次引入同一个头文件 重复声明
建议大家 任何一个头文件都要加上防卫式声明
- 头文件布局
- 类的声明
- 类模板
模板属于静态多态,地址晚绑定,类型不提前写死,用的时候再绑定
3.构造函数
- 内联函数
内联函数 更快 更好
过于复杂的函数没有办法inline
否inline需要由编译器决定是
- 访问级别
通常数据的部分放到private封装 函数的部分public
private和public可以任意交互
下面的例子表示
私有数据只能通过 成员函数读取 而不能通过对象直接获取
除非数据定义为public,而这也是我们所要避免的事情
- 构造函数
良好的构造函数写法 初始值应该放到参数列表中 将r赋值给re,i赋值给im
好处是完整的执行了变量初始化和赋值的两个阶段,如果在构造函数中赋值,就相当于
放弃了初始化阶段,效率会差一些
不带指针的类 多半不用写析构函数,比如本例
- 构造函数可以有多个
类被初始化 可能有不同的初值设定 所以可以重载构造函数
编译器编译后,会将重载的函数编译成不同的函数,
只有编译器自己看得懂,在编译器看来其实不同名
(2)的写法不正确,因为构造函数调用时没有传参数,
两个构造函数都可以调用,编译器无法确定调用哪个