对二元运算符采用成员函数重载时,只需要一个参数,而且该参数可以是内部类型.。正确吗这句话
时间: 2024-02-25 20:59:52 浏览: 28
部分正确。对二元运算符采用成员函数重载时,确实只需要一个参数,但是这个参数不能是内部类型,而是自定义的类或结构体类型。对于成员函数重载二元运算符,左操作数为调用成员函数的对象本身,右操作数作为参数传入。例如,对于自定义类型 MyType,可以使用如下方式重载加法运算符:
```
class MyType {
public:
MyType operator+(const MyType& other) {
MyType result;
// add logic
return result;
}
};
```
可以看到,重载加法运算符的成员函数只有一个参数,即右操作数 other,左操作数为调用该成员函数的对象本身。因此,该参数必须是自定义类型,而不能是内部类型。
相关问题
对二元运算符采用成员函数重载时,只需要一个参数,而且该参数可以是内部类型。 判断对错
这个说法是不准确的。对于二元运算符重载采用成员函数时,需要两个参数,第一个参数是调用该运算符的对象本身,第二个参数是另一个运算对象。同时,第二个参数可以是内部类型或者是该类的对象、指针、引用等其他类型,具体取决于需要实现的具体功能。因此,对于二元运算符的成员函数重载,需要两个参数,并且第二个参数类型可以根据需要进行选择。
重载为成员函数时,参数个数为运算符数目减一。 正确吗
不完全正确。重载为成员函数时,参数个数应该为运算符数目减一,但是必须包括一个隐式的this指针作为第一个参数。例如,如果要重载二元运算符+作为成员函数,参数应该是一个const引用类型的对象,然后函数声明应该是这样的:
```cpp
class MyClass {
public:
MyClass operator+(const MyClass& obj) const;
};
```
注意到函数的第一个参数是一个const引用类型的MyClass对象,并且函数声明中没有指定第一个参数的名称,因为它是隐式的。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)