Item 25:考虑实现一个不抛异常的swap

Effective-C++ C++ STL 异常 模板 特化 作用域 函数重载

提供一个更加高效的,不抛异常的共有成员函数(比如`Widget::swap`)。在你类(或类模板)的同一命名空间下提供非成员函数`swap`,调用你的成员函数。如果你写的是类而不是类模板,请偏特化`std::swap`,同样应当调用你的成员函数。调用时,请首先用`using`使`std::swap`可见,然后直接调用`swap`。

JavaScript显式类型转换与隐式类型转换

JavaScript 接口 弱类型 构造函数 类型转换

本文谈谈JavaScript的类型转换,我们知道在JavaScript中声明变量不需指定类型, 对变量赋值也没有类型检查,同时JavaScript允许隐式类型转换。这些特征说明JavaScript属于弱类型的语言。

在强类型的C++中,多数情况下构造函数需要声明为explicit来避免隐式类型转换引起的误用 (见Item 15:资源管理类需要提供对原始资源的访问)。 弱类型的语言中类型的误用会更加隐蔽,比如:

// 弹出对话框中输入1
var a = prompt('input a number');

var b = a + 1;

console.log(b);   // 控制台输出 11   

本文便来总结一下如何使用JavaScript进行类型转换,以及JavaScript中隐式类型转换的规则。

导航: 上一页 下一页

🔝