摘要:
1: 我一般习惯于把<<操作符重载成friend函数 class station{public: string m_info; station(string info):m_info(info){cout<<"construct!"<<endl;}; ~station(){cout<<"destruct!"<<endl;}; friend ostream &operator <<(ostream &os,station & sta);};ostream &am 阅读全文
摘要:
1: 序列容器: vector string deque list 关联容器: set multiset map multimap1:是否需要在容器任意位置插入元素: 序列容器可以 关联容器不行2:是否是需要随机访问: 是: string vector deque3:插入删除多么?是的话 就要避免连续内存的容器4: vector 是唯一与C的布局兼容的容器5:节点型容器 插入删除时 迭代器不会失效(除非迭代器指向正在操作的元素) 阅读全文
摘要:
1:编译器拒绝将virtual 函数 声明为inline 的这是显而易见的 因为virtual 函数 只有在运行期间 才确定最终要调用哪个函数 而inline函数 在编译期间 就确定要调用哪个函数了同时在debug中 可以在inline 函数中设置断点!对于inline 函数: inline 函数 无法 随着 程序库的升级而升级 如果f 是函数库中的一个inline函数 客户将f() 编入其程序中一旦程序库设计者决定改变 f() 所有用到f() 的客户端 程序都必须重新编译 如果f() 是非inline函数 客户端就只需要重新链接就好如果程序库采用动态链接 升级版函数甚至可以 不知不觉的 .. 阅读全文
摘要:
1: RAII 资源获得时机便是初始化时机 典型应用: 智能指针!2: 为什么 auto_ptr 指针复制之后 原指针就会变成NULL : 多分指针指向它 会被析构多次 delete 函数会多次调用3: 我要再次留心 stl容器的数据结构 与 特性4: 对于heap-based 资源 用shared-ptr 比较好 但是对于 栈上资源 还是用 自己的资源管理类比较好5: shared_ptr 对象在引用计数 为零的时候 会delete raw ptr 但这不是必需的 你可以用例如:shared_ptr<Mutex> mutexPtr(rawPtr,unlock); // unloc 阅读全文