基础:
变量、类型、作用域、循环、流程控制
目标:
正规的、大气的编程语言习惯
以良好的习惯来写c++ class(基于对象)
学习classes之间的关系(面向对象)
C++:语言部分和标准库部分。
书目:《C++Primer》《EffectiveC++》,《C++ TSL》标准库
C:全局变量,大家都可以处理
C++:封装数据和函数
C++代码基本形式:.h(声明)+.cpp(实现)+.h标准库
Header(头文件)中的防卫式声明
#ifndef __COMPLEX__//第一次引入,防止多次引入
#define __Complex__
#endif
头文件布局
class template(模板)简介
template<typename T>
inline(内联函数)调用更快
函数若在class body内定义完成,便成为inline候选人。是否真的inline函数由编译器决定。
access level(访问级别)
public:一般函数
private:数据都放在private
protective:
constructor(构造函数)
在大括号内是赋值阶段比初始化更晚。
构造函数可以有很多个——overloading重载
虽然函数名相同,但是编译器的编码后的实际名称不同。
构造函数已经有默认值了就不能再声明一个没有参数的构造函数
构造函数放到private区域:单例模式
const member function (常成员函数)不改变数据
参数传递:pass by value vs pass by reference(to const)
传递引用,引用底部就是指针,很快。
最好参数传递都传引用。
返回值传递:return by value vd return by reference(to const)
返回值也尽量by reference
friend(友元函数)自由取得friend的private成员
相同class的各个object互为friends(友元)
class body外的各种定义(definitions)
返回reference,被改动的是已经存在的参数、
返回value,在函数内部创建的对象。如果传递引用,函数结束时对象已经死亡,传递引用没有用。
代码规范小结:
1、数据一定在private中
2、参数用reference传
3、返回值也尽量用reference
4、函数本体中要用const的一定要用
5、构造函数用初始化
operator overloading(操作符重载-1,成员函数)this
return by reference
return by value
正负号
操作符:全局的函数