程设笔记

函数指针
命令行参数
位运算
引用 - 引用作为函数的返回值
不可通过常量指针修改其指向的内容
动态分配空间
内联函数、函数重载、缺省参数
缺省参数可以在扩充函数参数是避免对原有的调用语句的修改
类、成员函数、内联成员函数
构造函数
析构函数
静态成员 – 全局 – 易于维护
成员对象 – 封闭类
友元函数、友元类 友元类关系不能传递、不能继承
this指针
比如有一个class C

1
2
C *p = NULL;
p->magic();

等价于

1
2
C *p = NULL;
magic(p);

如果后一种语句合法那么前一种就合法
常量对象
常亮成员函数不应修改对象,也不能调用非常亮成员函数(静态除外)
常引用避免构造函数的开销
=返回值最好为引用 复制构造函数也要避免浅拷贝
运算符可以重载为友元函数
继承、派生
继承关系、复合关系
protected
虚函数、多态 virtual关键字
构造函数和析构函数中调用虚函数不是多态
虚函数表会占用空间
也有额外的时间开销 – 多态的函数调用过程是查询虚函数表
一个基类的指针删除派生类对象的时候希望先调用派生类析构函数再调用基类的析构函数
不允许虚函数作为构造函数
抽象类中成员函数允许调用纯虚函数,但是构造函数、析构函数中不允许
函数模板 – 泛型程序设计
STL

1
2
3
std::ostream_iterator<int> output(std::cout, " ");
std::copy(a.begin(), a.end(), output);
// 相当于是用 cout 输出 a 里面的元素,用空格分隔开

copy到vector的时候它不会自动扩空间
智能指针 shared_ptr 不能托管数组的指针
不能取地址的表达式是右值
lambda表达式
强制类型转换
异常

八数码中不改变排列的奇偶性