摘要:Item45 -- 清楚知道C++编译器默默为我们完成和调用哪些函数构造函数、拷贝构造、析构、赋值、取地址Item46 -- 宁愿编译和连接时出错,也不要执行时才错举了个把月份抽象成类,通过类的机制使得在编译和连接的时候能够发现错误。这个有点太高深了,一般用不到。忽略。Item47 -- 使用non-local static objects之前先确定它已有初值可以使用单键模式解决,在使用的函数声明...
阅读全文
随笔分类 - c&&c++
学习应用C&&C++
摘要:Item45 -- 清楚知道C++编译器默默为我们完成和调用哪些函数构造函数、拷贝构造、析构、赋值、取地址Item46 -- 宁愿编译和连接时出错,也不要执行时才错举了个把月份抽象成类,通过类的机制使得在编译和连接的时候能够发现错误。这个有点太高深了,一般用不到。忽略。Item47 -- 使用non-local static objects之前先确定它已有初值可以使用单键模式解决,在使用的函数声明...
阅读全文
摘要:Item35 -- 确定你的public继承,模拟出is-a关系public继承是is-a关系,潜在含义就是基类的所有函数在子类中都能用。举个范例,所有鸟都会飞,但是鸭子不会,所以鸭子不能从鸟public继承而来。如果一定要用,也要讲鸟划分成会飞的鸟和不会飞的鸟,鸭子从不会飞的鸟公开继承。Item36 -- 区分接口继承和实现继承声明一个纯虚函数的目的是让子类只继承其接口声明一般(非纯)虚函数的目...
阅读全文
摘要:Item29 -- 避免传回内部数据的handles传回handle之后,打破了抽象性,所以要避免对于non-const member functions而言,传回内部handle也会导致麻烦,当涉及暂时对象,Handle可能变成悬空的(dangling)Item30 -- 避免写出member function,传回一个non-const的指针或引用并指向较低存取层级的members同条款30,...
阅读全文
摘要:类与函数的设计和声明看看作者思考问题的角度:对象如何产生和销毁: 构造析构、new和delete的重载对象的初始化和赋值:构造、拷贝构造、赋值重载新型别转换相关:合法值的规范检验、继承体系、是否隐式转换访问权限:public、protected、private如何设计 Item18 -- 努力让接口完满且最小化1,KISS原则;2,头文件的重要性; Item19 -- 区分member funct...
阅读全文
摘要:Item11--如果class内动态置有内存,请为此class声明一个copy constructor和一个assignment运算符也就是说,class内有一个指针,使用new来动态申请内存的情况下,默认的copy constructor和assignment运算符是浅拷贝(bitwise copy),也即直接拷贝指针的值,可能会有内存泄露的危险String a("hello");{String...
阅读全文
摘要:Item5:使用相同形式的new和delete简单的说,就是单个对象和数组要区分对待。C++使用[]区分这是单个对象还是数组,所以new中有[]的时候,请用delete[]。Item6:记得在destructor中以delete对付pointer member这条为了防止内存泄露,具体说来要做三件事情:每个构造函数中将该指针初始化每个赋值运算符中将原有内存删除,重新配置一块每个析构函数中,dele...
阅读全文
摘要:一年前读此书,在书上乱写乱画,自认为对C++懂了。现在正式从事编码工作,看了别人的代码才发现自己其实并没有懂得很多,因此,重新拾起之前的书,认认真真开始记录笔记。 0--序言 四个转型运算符:比如static_cast<int>(32.12)const_cast:将对象或指针的常数型转型掉dynamic_cast:用来执行"安全的向下转型动作"reinterpret_cast:转...
阅读全文
|