📜  C ++ |运算符重载|问题4

📅  最后修改于: 2021-06-01 02:42:07             🧑  作者: Mango

下列哪个运算符应该首选作为全局函数而不是成员方法重载?
(A)后缀++
(B)比较运算子
(C)插入运算符<<
(D)前缀++答案: (C)
说明: cout是ostream类的对象,ostream类是编译器定义的类。

当我们这样做“的cout <<目标文件”,其中obj是我们的类的对象,编译器首先会在ostream的运算符函数,那么它会寻找一个全球性的函数。
重载插入运算符的一种方法是修改ostream类,这可能不是一个好主意。因此,我们制定了全局方法。以下是一个示例。

#include 
using namespace std;

class Complex
{
private:
    int real;
    int imag;
public:
    Complex(int r = 0, int i =0)
    {
        real = r;
        imag = i;
    }
    friend ostream & operator << (ostream &out, const Complex &c);
};

ostream & operator << (ostream &out, const Complex &c)
{
    out << c.real;
    out << "+i" << c.imag;
    return out;
}

int main()
{
    Complex c1(10, 15);
    cout << c1;
    return 0;
}

这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。