求重新创建一个新对象。保证了单态(singleton),使非可变类
原创
2022-09-22 16:09:35
116阅读
引言 创建和销毁对象 何时以及怎样创建对象。何时以及怎样避免创建对象。怎样确保创建的对象能够被适时地销毁,以及怎样管理销毁之前必须进行的全部清楚工作 第1条 考虑用静态工厂方法取代构造器 静态工厂方法与构造器不同的第一大优势在于:它们有名称 静态工厂方法与构造器不同的第二大优势在于:不必再每次调用它
转载
2018-04-14 16:40:00
92阅读
2评论
Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享.Background看了历史, 写第一篇笔记居然是2016年的事情了, 中间半途而废搁置了好长时间, 去年生病的时候捡起来看了一些, 今年终于看完了.做这个笔记的目的主要是为了个人学习, 把一本书读薄,
转载
2021-06-02 15:51:47
217阅读
记录一下我认为有感触的片段。
一、构造函数不要调用可被子类重写的方法,因为此时子类还未构造,极有可能导致程序失败。
我之前还想不通怎么会调用到被重写的方法上去。后来明白那是因为成员方法的第一个参数是隐藏参数,引用一个对象。当父类的方法被调用时传入的却是子类对象的引用。
原创
2021-09-01 13:36:26
185阅读
《Effective Java》是Java开发领域无可争议的经典之作,连Java之父James Gosling都说: “如果说我需要一本Java编程的书,那就是它了”。它为Java程序员提供了90个富有价值的编程准则,适合对Java开发有一定经验想要继续深入的程序员。本系列文章便是这本著作的精华浓缩,通过阅读,读者可以在5天时间内快速掌握书中要点。为了方便读者理解,笔者用通俗易懂的语言对全书做了重
转载
2023-10-20 22:54:16
97阅读
条款3:使容器里对象的拷贝操作轻量而正确STL中采用的都是拷贝对象的方式如果所有这些使STL的拷贝机制听起来很疯狂,就请重新想想。是,STL进行了大量拷贝,但它通常设计为避免不必要的对象拷贝,实际上,它也被实现为避免不必要的对象拷贝。和C和C++内建容器的行为做个对比,下面的数组:Widget w[maxNumWidgets];// 建立一个大小为maxNumWidgets的Widgets数组// 默认构造每个元素即使我们一般只使用其中的一些或者我们立刻使用从某个地方获取(比如,一个文件)的值覆盖每个默认构造的值,这也得构造maxNumWidgets个Widget对象。使用STL来代替数组,你
转载
2012-07-11 23:07:00
155阅读
2评论
class Widget { public: Widget();//default构造函数 Widget( constWidget& rhs );//copy构造函数 W
原创
2022-04-13 15:05:01
85阅读
class Widget { public: Widget();//default构造函数 Widget( constWidget& rhs );//copy构造函数 Widget& operator=( constWidget& rhs);//copy assignment 操作符 … };Widget w1;//调用default构造函数 Widget w2(w1);//调用c
原创
2021-07-06 10:17:42
119阅读
很早之前就听过这本书,找工作之前读一读。看了几页,个人感觉实在是生涩难懂,非常不符合中国人的思维方式。之前也有博主做过笔记,我来补充一些自己的理解。 我看有人记了笔记,还不错:://.360doc./content/12/0426/20/7899729_206769585.sht
原创
2022-01-17 17:57:55
182阅读
大家好,我是阿秀,今天给大家分享一下C++经典著作《Effective C++的》读书笔记,是时候收藏起来吃灰了。
Part1一、让自己习惯C++
条款01:视C++为一个语言联邦C++并不是一个带有一组守则的一体语言:他是从四个次语言( C、Object-Oriented C++、Template、STL ) 组成的联邦政府,每个次语言都有自己的规约。记住这四个次于语言你就会发现C++容易了解
转载
2021-12-14 17:19:10
461阅读
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
原创
2022-07-26 07:11:07
101阅读
条款08 别让异常逃离析构函数: 假设在析构函数其中发生了异常,程序可能会过早结束或者导致不明白行为(异常从析构函数传播出去) 看代码: #include <iostream> using namespace std; class DBConnection { public: void close(
转载
2016-04-21 21:15:00
124阅读
条款11: 在operator= 中处理“自我赋值” 在实现operator=时考虑自我赋值是必要的就像 x=y 。我们不知道变量x与y代表的值是否为同一个值(把x和y说成是一个指针更恰当一点)。例如以下 第一版: #include <iostream> using namespace std; c
转载
2017-07-01 21:17:00
111阅读
2评论
条款01:视C++为一个语言联邦 条款02:尽量以const,enum,inline替换#define 条款03:尽可能使用const 条款04:确定对象使用前先被初始化 条款05:了解C++默认编写并调用哪些函数 条款06:若不想使用编译器自动生成的函数,就该明确拒绝 条款07:为多态基类声明virtual析构函数 条款08:别让异常逃离析构函数 1. 编译单元 为免除"跨编译单元之初始化次序"问题,请以local static 对象替换non-local static对象。为免除"跨编译单元之初始化次序"问题,请以local static 对象替换n
转载
2012-08-19 21:47:00
44阅读
2评论
这是 Effecive Python 2nd 的读书笔记
原创
2022-09-23 17:05:32
50阅读
第2条:遇到多个构造器参数时要考虑用构建器
某个类的属性较多,初始化的时候又有一些是必须初始化的,而且类型有形同,
比如new Contact("姓名","显示名","手机号",&
原创
2009-11-25 11:28:00
455阅读
点赞
2评论
不要使用原生类型声明中具有一个或多个类型参数的类或者接口就是泛型类或接口。泛型类和接口统称为泛型。每一种泛型都定义一个原生(态)类型,即不带任何实际类型参数的泛型名称。例如,与List<E>相对应的原生类型是List。private final Collection<Stamp> stamps = ...;通过这条声明,编译器知道stamps应该只包含Stamp实...
原创
2022-07-13 17:04:05
354阅读
第38条:检查参数的有效性《Effective Java中文版 第2版》PDF版下载: http://download.csdn.net/detail/xunzaosiyecao/9745699 作者:jiankunking 出处:http://blog.csdn.net/jiankunking
原创
2022-07-26 07:24:56
127阅读