1. 以下运算符函数中肯定不属于类FunNumber的成员函数的是__D____。
本题考查的是类的成员函数。
选项A是重载了负号或减法运算符,由于减法运算符它具有两个操作数,而题面原型中只有一个,如果重载的是减号运算符,则必为成员函数。
选项B中由于没参数,无论是负号或减法运算符至少具有一个参数,所以它必为成员函数,同时也必定是重载了负号运算符。
选项C是必定以成函数的方式重载,因为C++规定不能对内置类的运算符进行重载,所以它不可能是友元函数(因为操作数为内置的int型),所以必为成员函数重载,且必定是重载了减法运算符。
选项D有两个参数,无论是负号或减法运算符,其操作数不超2个,所以必定为友元函数重载,且重载了减法运算符。
故本题答案为D。
2. 运算符重载是对已有的运算符赋予多重含义,因此__C____。
本题主要考查了运算符重载。
C++在重载运算符时,必须符合下面的条件:
1、不能重载内置C++数据类型(如int,double等类型)的运算符的含义; 2、不能定义C++中没有的运算符;
3、不能改变重载运算符的优先级与操作数的个数;
4、有些运算符不能被重载,如域运算符(::),条件运算符(?:)等,具体哪些运算符不能被重载与编译器有关。
3. 有如下程序:
#include
class Complex {
double re,im; public:
Complex (double r,double i):re(r),im(i) { } double real() const {return re;} double image() const { return im;} Complex& operator+=(Complex a) {
re+=a.re ; im+=a.im ; return *this ; } };
ostream& operator<<(ostream& s,const Complex& z) {
return s<<'('< int main() { Complex x(1,-2),y(2,3); cout<<(x+=y) < 执行这个程序的输出结果是_(3,1)_____。 4. 在重载一个运算符为成员函数时,其参数中没有任何参数,这说明该运算符是__A____。 A.前缀一元运算符 B. 二元运算符 C. 后缀一元运算符 D. 无操作数运算符 5. 下面程序中对一维坐标点类Point进行运算符重载 #include Point(int val) {x=val;} Point& operator ++(){x++;return *this;} Point operator ++(int) {Point old=*this;++(*this);return old;} int GetX() const {return x;} private: int x; }; int main() { Point a(10);