条款24:若所有参数皆需类型转换,请为此采用non-member函数

来源:互联网 发布:网络推广工资一般多少 编辑:程序博客网 时间:2024/05/01 09:15

 一、

  如:

  class Rational

  {

    ....

  };

  要想以下操作:

  Rational a;

  Rational rst = a * 2;

  Rational rst1 = 2*a;

  就是需要一个operator*函数,其参数都需要类型转换

二、总结

1.可以避免friend 函数时尽量避免

2.如果你需要为某个函数的所有参数(包括被this指针所指的那个隐喻参数)进行类型转换,那么这个函数必须是个non-member。