Effective 及其more 系列
念去去~
我要读博士!!!
展开
-
条款1:视C++为一个语言联邦
条款1:视C++为一个语言联邦C++是相关语言组成的联邦而非单一语言。其主要次语言:C。C++以C语言为基础,其对问题的解法不过是较高级的C解法C:语句、区块、预处理器、内置数据类型、数组、指针C++:模版、异常、重载Object-Oriented C++。这一部分是面向对象设计之古典守则在C++上最直接实施(C with Classes)。包括classes、封装、继承、多态、vi...原创 2018-10-19 18:27:47 · 203 阅读 · 0 评论 -
条款23:宁以non-number、non-friend替换member函数(未完)
。。。原创 2018-10-27 16:24:04 · 356 阅读 · 0 评论 -
条款22:将成员变量声明为private
public意味着不封装,不封装意味着不可改变,特别是对广泛使用的class而言,被广泛使用的class是一个最需要封装的族群。Protected的封装性并非高过public成员,某些东西的封装性与“当其内容改变时可能造成代码的破换量”成反比,从封装的角度来看,只有两种访问权限,private(提供封装)和其他(不提供封装)。 请注意切记将成员变量声明为private。这可赋予客户访问数据...原创 2018-10-27 16:12:15 · 157 阅读 · 0 评论 -
条款21:必须返回对象时,别忘想返回其
举世誉之而不加劝,举世非之而不加沮虽然值传递存在效率等方面的问题,但是不能够一味地追求引用传递从而犯下一个错误,:开始传递一些引用不存在的对象。所谓的引用只是个名称,代表某一个既有的对象。任何时候看见一个引用声明式,都应该立刻问自己,他的另一个名称是什么?因为他一定是某一物的另一个名称。所以为了返回其引用,必须创造这个对象。创造对象的方法有以下两种:在stack空间在heap空间如...原创 2018-10-27 15:20:47 · 155 阅读 · 0 评论 -
条款20:宁以pass-by-reference-to-const替换pass-by-
码了一天的教程,没有保存关机了,所以决定每一个条款发一篇博客,看完这本书之后再以章节排版用引用传递代替值传递的好处:成本降低//此会造成构造函数和析构函数的多次创建bool validateStudent(Student s)Student plato;bool platoIsOK = validateStudent(plato)改成bool validateStudent(...原创 2018-10-26 16:47:06 · 120 阅读 · 0 评论 -
条款6:若不想使用编译器自动生成的函数就应该明确拒绝
条款6:若不想使用编译器自动生成的函数就应该明确拒绝通常,如果不希望class支持某一些待定机能,只要不声明对应函数就是了。但是这个策略对copy函数和copy assignment操作符却不起作用,条款5指出,如果你不声明它们,而某些人尝试点用他们,编译器会自动为你声明他们。方法1 所有编译器产出的函数都是public,所以你可以将copy构造函数或者copy assignment操作符声明...原创 2018-10-26 16:27:39 · 155 阅读 · 0 评论 -
条款4:确定对象被使用前已先被初始化
条款4:确定对象被使用前已先被初始化初始化有的会认为进行了,有的却不认为,有的次语言被初始化,而有的不会,所以最佳处理办法为:== 永远在使用对象之前先进行初始化,无论任何成员的内置类型,必须手工完成此事== int x = 0; //对int进行手工初始化 double d; std::cin >> d; //以读取input ...原创 2018-10-26 16:25:10 · 131 阅读 · 0 评论 -
条款3:尽可能使用const
条款3:尽可能使用constconst提供一个语义约束,指定一个“不该被改动的对象”,而编译器会强制实施这项约束。指出指针自身、指针所指物、或者两者都不是const:char greeting[] = "hello";char* p = greeting; //non-cost pointer,non-const dataconst char* p = greeting; ...原创 2018-10-26 16:24:39 · 103 阅读 · 0 评论 -
条款2:尽量以const、enum、inline替换#define
条款2:尽量以const、enum、inline替换#define-------宁可以编译器替换预处理器const可替换#define,但是有两个特殊情况:定义常量指针。由于常量定义式通常被放在头文件内(以便被不同的源码含入),因此有必要将指针(而不是指针所指之物)申明为const。例如:在头文件内定义一个常量的char*-based字符串,必须写两次constconst c...原创 2018-10-26 16:23:49 · 157 阅读 · 0 评论 -
条款19:设计class犹如设计type
条款18.让借口容易被正确使用原创 2018-10-23 16:23:56 · 162 阅读 · 0 评论 -
条款5:了解C++默默编写并调用了哪些函数(未完)
条款5:了解C++默默编写并调用哪些函数。。。条款6:若不想使用编译器自动生成的函数就应该明确拒绝。。。条款7:为多态基类声明virtual析构函数。。。...原创 2018-10-21 11:46:51 · 188 阅读 · 0 评论 -
条款26:尽可能延后变量定义式的出现时间
&emsp只要你定义了一个变量而起类型带有一个构造函数和一个析构函数,那么当程序控制流到这个变量的原创 2018-11-02 11:32:17 · 137 阅读 · 0 评论