2012年6月4日

Professional C++读书笔记06

摘要: 2012-05-22Chapter091、操作符重载:实现类对象按简单类型进行+- 例:SpreadsheetCell myCell(4),anotherCell(5); SpreadsheetCell aThirdCell=myClee+anotherCell; const SpreadsheetCell operator+ (const SpreadsheetCell &cell)const; 可以实现aThirdCell=myCell+5.6这样的操作 解释:编译器会寻找一个double作参数的SpreadsheetCell的构造函数,并以5.6创建一个临时变量 但,1,诸如my 阅读全文

posted @ 2012-06-04 23:12 TheBest 阅读(108) 评论(0) 推荐(0) 编辑

Professional C++读书笔记05

摘要: 2012-05-20Chapter091、复制构造函数浅复制时的隐患 若对象中有指针成员,则当对象作为形参传入时 例如void myFun(Spreadsheet s)…… Spreadsheet s1(5,3); myFun(s1);// s1与s中的指针成员指向同一块内存(s是由s1通过复制构造函数生成的),当myFun()结束时,会释放s,则s指针成员所指向空间释放,导致s1的指针成员指向的空间释放,即s1的指针成员指向一块已经释放的内存。2、赋值运算符浅复制时的隐患 Spreadsheet s1(2,2),s2(4,3); s1=s2; 则s1,s2中的指针成员指向了同一块内存(s1的 阅读全文

posted @ 2012-06-04 23:11 TheBest 阅读(148) 评论(0) 推荐(0) 编辑

Professional C++读书笔记04

摘要: 2012-05-18Chapter081、初始化列表:允许在创建数据成员的同时完成数据成员的初始化 语法:以冒号开头,以逗号做分隔符,每个元素分别对一个数据成员初始化,可以使用函数记法 例:SpreadsheetCell::SpreadsheetCell():mValue(0),mString(“”); 注:在构造函数体内为一个对象赋值时,并没有真正构造该对象(这些数据成员已经初始化),这一点与初始化列表不同 注:初始化列表按类定义中数据成员声明的顺序进行初始化,而非初始化列表中的顺序2、将对象按const引用来传递,而不是按值来传递 按const引用效率更高,只会复制对象的地址,而不会复制对 阅读全文

posted @ 2012-06-04 23:10 TheBest 阅读(153) 评论(0) 推荐(0) 编辑

导航