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;
};
Code snippet from : the c++ prog. language 4th edition , Bjarne IDE : Microsoft Visual Studio Professional 2013 My experience : Newbie , have learned a little using turbo c++ before.
I noticed while typing function2 that operator is a keyword(shown in blue color) , but when whole function2 is declared , operator turns white , that is it doesn't remain an keyword anymore.
If i try using any other name other than "operator" , an error pops up , which says Error: array of function is not allowed
It would be very helpful if someone can explain what is happening in function2, I want to know all that there is about the keyword operator , why,how and when to use this.Ofcourse from a beginner's perspective.
Please refrain from overly complex answers , I am complete newbie
I tried searching on internet , couldn't find anything else apart from operator overloading , which is not my question.
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;
}
Here line1 passes the argument "s" of int type needed by constructor of class vector , that's fine.
But in line3 how can the statement "cin>>v[i]" be valid ? , since the object v isn't declared as an array of objects. Even if it is valid where does the value go..?
Basically it is out of my knowledge , please explain line3 in simplest possible manner, and at the same time as exhaustively as possible , so that I can learn.
PS: Do not tell me , that i shouldn't be learning c++ , or i shouldn't be using that IDE or anything else like that. If you can , then answer the question, I shall be very thankful.