gpt4 book ai didi

c++ - 解释 C++ 中的运算符重载

转载 作者:行者123 更新时间:2023-11-28 06:59:29 25 4
gpt4 key购买 nike

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++ 的新手。以下有关运算符重载的链接可能会有用。

运算符重载基础知识:Operator Overloading .

可以重载的运算符的完整列表:Operator Overloading

关于c++ - 解释 C++ 中的运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com