若所有参数都需要类型转换,请为此采用non-member函数
以一段代码来进行解释:
class Rational
{
public:
Rational(int numerator=0,int denominator=0);注意这里并没有使用explicit,是希望整数到有理数的合理转换
private:
int n,d;
}
这时候我们设计有理数的相乘,显然这里采用成员函数的做法不符合Rational c=2*a这种做法,operator*应该是一个非成员函数。
若所有参数都需要类型转换,请为此采用non-member函数
以一段代码来进行解释:
class Rational
{
public:
Rational(int numerator=0,int denominator=0);注意这里并没有使用explicit,是希望整数到有理数的合理转换
private:
int n,d;
}
这时候我们设计有理数的相乘,显然这里采用成员函数的做法不符合Rational c=2*a这种做法,operator*应该是一个非成员函数。