effective C++条款二十四解读
2017-08-21 15:53
162 查看
若所有参数都需要类型转换,请为此采用non-member函数
以一段代码来进行解释:
class Rational
{
public:
Rational(int numerator=0,int denominator=0);注意这里并没有使用explicit,是希望整数到有理数的合理转换
private:
int n,d;
}这时候我们设计有理数的相乘,显然这里采用成员函数的做法不符合Rational c=2*a这种做法,operator*应该是一个非成员函数。
以一段代码来进行解释:
class Rational
{
public:
Rational(int numerator=0,int denominator=0);注意这里并没有使用explicit,是希望整数到有理数的合理转换
private:
int n,d;
}这时候我们设计有理数的相乘,显然这里采用成员函数的做法不符合Rational c=2*a这种做法,operator*应该是一个非成员函数。
相关文章推荐
- effective C++条款三十五解读
- more effective C++条款四解读
- Effective C++条款22解读: 将成员变量生命为private
- Effective C++条款36解读: 绝不重新定义继承而来的non-virtual函数
- 读书笔记_Effective_C++_条款二十四: 若所有参数皆需类型转换,请为此采用non-member函数
- effective C++条款二十七解读
- Effective C++条款06解读 : 若不想使用编译器自动生成的函数, 就应该明确拒绝
- effective c++条款二十九解读
- Effective C++条款11解读: 在operator=中处理“自我赋值”------顺便给出string类的Big Three
- effective C++条款五解读
- effective C++条款三十六解读
- effective C++条款四十一解读
- Effective C++条款07解读:为多态基类声明virtual析构函数 (某公司招聘面试试题)
- effective C++条款四十二解读
- effective C++条款四十三解读
- effective C++条款二十三解读
- effective C++条款四十四解读
- Effective C++条款04解读:确定对象被使用之前已先被初始化
- effective C++条款二十三解读
- Effective C++条款26解读: 尽可能延后变量定义式的出现时间