Effective-C++
C++
封装
接口
类型检查
总之,好的接口容易被正确使用,不易被误用。可以为内置类型提供一致的接口来方便正确的使用。识别误用的手段包括:创建新的类型、限制类型的操作、限制对象的值、移除客户的资源管理责任。
Effective-C++
C++
异常
指针
动态内存
智能指针
在单独的语句中将new的对象放入智能指针,这是为了由于其他表达式抛出异常而导致的资源泄漏。因为C++不同于其他语言,函数参数的计算顺序很大程度上决定于编译器。
Effective-C++
C++
指针
数组
动态内存
如果你用`new`申请了动态内存,请用`delete`来销毁;如果你用`new xx[]`申请了动态内存,请用`delete[]`来销毁。
DOM
HTML
JavaScript
jQuery
事件
选择器
链式调用
DOM选择,可以指定上下文;DOM创建,可以指定所属的document、属性、事件、甚至所有jQuery方法;DOM加载完成事件监听,是`$(document).ready()`的简化写法。
Effective-C++
C++
封装
智能指针
类型转换
资源管理对象需要提供对原始资源访问。获取资源的方式有两类:隐式地获取和显式地获取。通常来讲,显式的资源获取会更好,它最小化了无意中进行类型转换的机会**
Effective-C++
C++
RAII
智能指针
构造函数
拷贝构造函数
资源管理对象的拷贝行为取决于资源本身的拷贝行为,同时资源管理对象也可以根据业务需要来决定自己的拷贝行为
HTML
JavaScript
jQuery
事件
表单
建议使用`button[type=submit]`来提交表单,而不是`input`;只有单行文本控件时,回车会引发表单提交;通过`onsubmit`事件可阻止表单提交