在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。 A. operator+有两个参数,operator*有两个参数 B. operator+有两个参数,operator*有一个参数 C. operator+有一个参数,operator*有两个参数 D. operator+有一个参数,operator*有一个参数
时间: 2023-07-15 22:11:19 浏览: 390
正确答案是C. operator+有一个参数,operator*有两个参数。
因为+是作为成员函数重载的运算符,所以它只有一个参数,即另一个操作数。而*是作为非成员函数重载的运算符,所以它有两个参数,即两个操作数。因此,选项A和B都是错误的。选项D也是错误的,因为在这种情况下,我们无法区分操作数是x还是y*z。选项C是正确的。
相关问题
在表达式x+y*2中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符,则operator+和operator*分别有多少个参数,为什么?
在表达式x+y*2中,+是作为成员函数重载的运算符,所以operator+只有一个参数,即表示y的类型的参数。而*是作为非成员函数重载的运算符,所以operator*有两个参数,第一个参数为表示2的类型的参数,第二个参数为表示y的类型的参数。这是因为成员函数重载的运算符会自动将调用对象作为第一个参数,而非成员函数重载的运算符需要显式地传递所有参数。
14、在表达式a+b*c中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符,则 operator+,operator* 分别有( )个参数。 A.2、2 B.2、1 C.1、2 D.1、1
在表达式a+b*c中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符,则operator+,operator* 分别有B、2、1个参数。
根据题意,+运算符是作为成员函数重载的,因此operator+应该只有一个参数,即加号右侧的操作数c。因此,选项D和选项C都是不正确的。
同样地,*运算符是作为非成员函数重载的,因此operator*应该有两个参数,即左侧的操作数a和右侧的操作数c。因此,选项A是不正确的。
综上所述,选项B、operator+有2个参数,operator*有1个参数,是正确的。
阅读全文