自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 effective c++ 学习笔记12

条款12 复制对象时勿忘其每一个成分 面向对象系统会将对象的内部封装起来,只留两个函数负责对象的copy:即copy构造函数和赋值运算符。 当用户没有实现时,编译器会自动为对象生成这两个函数,对对象的所有参数做值copy,[浅copy]。 因此,对于在构造函数中使用new的class,要额外注意copy构造和赋值运算符。 编译器默认生成的构造函数,并不会copy new出来的对象,只复制了其地址,直接使用编译器生成的函数会有意想不到的问题。 class Account { public : Account

2021-08-25 00:49:06 82

原创 effective c++ 学习笔记11

条款11 在operator=中处理自我赋值 继续参考上例,当用户调用方法如下时,会有什么问题? int main() { Cat A("huahua",5); A = A; } 正常通过。 考虑如下情况 class CatOwner { public: CatOwner(std::string name = "lily",std::string cat_name ="huahua"):name_(name) { pcat_ = new Cat(cat_name);

2021-08-25 00:46:43 96

原创 effective c++ 学习笔记10

构造/析构/赋值运算符 条款10 令operator= 返回一个reference to *this 关于赋值,可以写成连锁赋值形式 ,如 x = y = z = 4 如果是用户自定义的数据类型class, 要如何实现? class Cat { public: Cat(std::string name="mimi", int age = 3):name_(name),age_(age){} ~Cat() {} /* Cat &operator=(const C

2021-08-25 00:43:52 51

原创 effective c++ 学习笔记00

前言 目的以及与其他书籍的区别 这本书目的主要是强调那些常被漠视的C++的编程的方向和观点。 其他书籍描述的是c++语言的各个成分,本书是告诉读者如何结合这些成分以便获得有效的程序。 其他书籍告诉你如何让程序通过编译,本书是告诉你如何回避编译器难以显露的问题 声明式和定义式 声明式是告诉编译器某个东西的名称和类型 extern int x; std::size_t numDigits(int num); // class Widget; template<class T> class G

2021-08-25 00:29:42 54

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除