C++面向对象高级开发B
一、概述
- operator type() const;
- explicit complex(…):initialization list{}
- pointer-like object
- function-like object
- template specialization
- Rvalue reference(since C++11)
- range-base for loop(since C++11)
- Object Modal
二、转换函数(conversion function) vs. non-explicit-one-argument ctor
1.认识转换函数
形式:operator type() const
//将Fraction转double(分数转小数)
class Fraction
{//
public:
Fraction(int num, int den = 1)
: m_mumerator(num), m_denominator(den) { }
/**
* 这个形式就是转换函数(无返回值)分数转小数(double类型)
* 注意:这里一定要加const:因为转换函数不会修改数据,只是转换类型
*/
operator double() const
{
return (double) (m_numerator / m_denominator);
}
pri