下列哪个运算符应该首选作为全局函数而不是成员方法重载?
(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基础课程》。