|
8鱼币
在complex类里面,关于“+”字符的重载,用成员函数重载和用友元函数重载的区别。写在如下标红的三处的区别!!谢谢
例如:
#ifndef PCH_H
#define PCH_H
#include <iostream>
class Complex
{
public:
Complex(double r = 0, double i = 0) : r(r), i(i)
{
}
double real()const
{
return r;
}
double imag()const
{
return i;
}
Complex operator+ (const Complex& c1);
Complex& operator+= (const Complex& c1);
friend Complex operator* (const Complex&c1, const Complex& c2);
friend Complex operator+ (const Complex& c1, const Complex& c2);
private:
double r, i;
friend std::ostream& operator << (std::ostream& os, const Complex& c2);
};
Complex operator+ (const Complex& c1, const Complex& c2);
Complex operator+ (const double c1, const Complex& c2);
Complex operator+ (const Complex& c1, const double c2);
#endif //PCH_H
你好:成员函数:优先选用成员函数,但是部分运算符不可以用成员函数进行重载,比如<< 和 >>只能用友元 函数进行重载。
友元函数:可以重载任意运算符,但是在泛型编程中会造成 友元函数滥用的现象。
总结:除了不能用成员函数进行重载的运算符外,均应用成员函数进行重载。
|
最佳答案
查看完整内容
你好:成员函数:优先选用成员函数,但是部分运算符不可以用成员函数进行重载,比如>只能用友元 函数进行重载。
友元函数:可以重载任意运算符,但是在泛型编程中会造成 友元函数滥用的现象。
总结:除了不能用成员函数进行重载的运算符外,均应用成员函数进行重载。
|