简答题

一个运算符重载函数被定义为成员函数或友员函数,从定义方式、解释方式和调用方式上有何区别?可能会出现什么问题?

正确答案


可能会出现的问题:
(1)运算符的左右操作数不同,须用友员函数重载;
(2)当运算符的操作需要修改类对象状态时,应用成员函数重载。
(3)友员函数不能重载运算符 = () [] -> ,必须要用友员函数重载的运算符 >> <<

答案解析

相似试题
  • 分别使用成员函数和友员函数编写程序重载运算符“+”,使该运算符能实现两个字符串的连接。

    简答题查看答案

  • 使用成员函数方法和使用友元函数的方法所定义的重载运算符函数的参数个数是不相同的。

    判断题查看答案

  • 试从定义方式、调用方式分析常成员函数、静态成员函数和友员函数的区别。若class Goods的指针域Goods * next;被声明为私有(private)成员,程序会出现什么错误?做什么最小修改能使程序正确运行?请你试一试。

    简答题查看答案

  • 当一元运算符的操作数,或者二元运算符的左操作数是该类的一个对象时,重载运算符函数一般定义为()

    单选题查看答案

  • 类的()成员只能被该类的成员函数或友元访问。

    填空题查看答案

  • 将运算符++重载为类的友元函数时,定义前置++有()个参数,而定义后置++有()个参数。

    填空题查看答案

  • 运算符重载是通过函数来实现的,定义运算符重载函数时,函数名中要使用关键字operator。

    判断题查看答案

  • 运算符重载只可以是类的成员函数和友元函数,不可以是普通函数。

    判断题查看答案

  • 在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。

    单选题查看答案