class Vector {
public:
Vector(int s) :elem{new double[s]}, sz{s} { }
double& operator[](int i) { return elem[i]; } //function 2
int size() { return sz; }
private:
double∗ elem;
int sz;
};
代码片段来自:C++ 编程语言第 4 版,Bjarne Stroustrup
IDE:Microsoft Visual Studio Professional 2013
请解释一下 operator 关键字的作用是什么?我尝试搜索除了运算符重载之外找不到其他任何东西,这不是我的问题
double read_and_sum(int s) {
Vector v(s); //line 1
for (int i=0; i!=v.size(); ++i)
cin>>v[i]; //line 3
double sum = 0;
for (int i=0; i!=v.size(); ++i)
sum+=v[i];
return sum;
}
这里line1传递了类vector的构造函数需要的int类型的参数s,没问题。
但是在第 3 行中,语句“cin>>v[i]”如何有效? ,因为对象 v 没有声明为对象数组。即使它是有效的,值(value)去哪儿了..?
最佳答案
关于c++ - 解释 C++ 中的运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694725/