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;
};
Snippet di codice da: c ++ prog. lingua 4a edizione, Bjarne IDE: Microsoft Visual Studio Professional 2013 La mia esperienza: principiante, ho imparato un po 'usando turbo c ++ prima.
Ho notato durante la digitazione di function2 che operator è una parola chiave (mostrata in blu), ma quando viene dichiarata l'intera funzione2, operator diventa bianca, cioè non rimane più una parola chiave.
Se provo a utilizzare un altro nome diverso da "operator", viene visualizzato un errore, che dice Errore: l'array di funzioni non è consentito
Sarebbe molto utile se qualcuno potesse spiegare cosa sta succedendo nella funzione2, voglio sapere tutto ciò che c'è riguardo all'operatore della parola chiave, perché, come e quando usarlo. Il lavoro dal punto di vista di un principiante.
Si prega di astenersi da risposte eccessivamente complesse, sono completo newbie
Ho provato a cercare su internet, non riuscivo a trovare altro oltre all'overloading dell'operatore, che non è una mia domanda.
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;
}
Qui line1 passa l'argomento "s" del tipo int richiesto dal costruttore del vettore di classe, va bene.
Ma in line3 come può essere valida la frase "cin > v [i]"? , poiché l'oggetto v non è dichiarato come una matrice di oggetti. Anche se è valido dove va il valore ..?
Fondamentalmente è fuori dalla mia conoscenza, per favore spiega la linea3 nel modo più semplice possibile e nel modo più esauriente possibile, in modo che io possa imparare.
PS: Non dirmi che non dovrei imparare c ++, o non dovrei usare quell'IDE o qualcos'altro del genere. Se puoi, rispondi alla domanda, sarò molto grato.