C++ 请解释以下功能
我遇到了一个函数定义,它的开头是:C++ 请解释以下功能,c++,C++,我遇到了一个函数定义,它的开头是: int operator*(vector &y) { // body } 在将*放在运算符后面并打开参数大括号之前,此函数的含义是什么 这是一个操作符*重载。您应该使用的语法是*(y),而y是vector类型 它允许您使用类似于引用的实现,类似于C中的指针引用。当然,实际含义取决于主体。e、 g.您可以返回对向量中内部元素的引用。这是*运算符的函数重载。它的函数重载使反引用运算符重载*实际上它不是*ptr中的延迟运算符!它实际上是一个运算符,比如
int operator*(vector &y)
{
// body
}
在将
*
放在运算符后面并打开参数大括号之前,此函数的含义是什么 这是一个操作符*
重载。您应该使用的语法是*(y)
,而y
是vector
类型
它允许您使用类似于引用的实现,类似于C中的指针引用。当然,实际含义取决于主体。e、 g.您可以返回对向量中内部元素的引用。这是
*
运算符的函数重载。它的函数重载使反引用运算符重载*
实际上它不是*ptr中的延迟运算符!它实际上是一个运算符,比如乘法运算符。下面是一个简单的例子
#include <iostream>
using namespace std;
struct Int{
int val;
Int(const int val = 0) : val(val){}
int operator*(const Int& number)const{
return val * number.val;
}
};
int main(){
Int n(4), m(5);
cout << n * m << endl; //use the operator*() implicitly
cout << (n.operator*(m)) << endl; //use the operator* explicitly
}
#包括
使用名称空间std;
结构整型{
int-val;
Int(const Int val=0):val(val){}
整型运算符*(常数整型和编号)常数{
返回val*number.val;
}
};
int main(){
Int n(4),m(5);
cout它要么是一个解引用运算符,要么是一个乘法运算符重写。如果它在命名空间中,它就是解引用的,如果它在类中,它就是乘法的。因为它有一个主体,没有类作用域,我也会假设它是一个解引用的。大多数重载运算符可以定义为非成员函数,一元*不是exception。如果它是一个成员函数,是的,它是二进制*,但如图所示,一元*更可能。哦,等等,是的,你是对的,我没有意识到它是一个正则函数。