PDA

Visualizza la versione completa : [C++]operator


Bocos
20-05-2004, 15:03
Questo argomento è spesso trattato,
ma trovo difficolta a definire un operatore [] overloaded
Mi spiego:

class B...

double A = B[x]; // apposto

B[x] = A //l-value specifies const object

l'operatore è definito così:
double const &operator[](const int i) const{return (array[i]);}

ho provato un pò tutto, ho fatto anche ricerche... :cry:

Grazie mille!

nik600
20-05-2004, 15:41
se non sbaglio l'overloading dell'operatore deve restituire un'ggetto e non un variabile primitiva...io avevo fatto cosi:



using namespace std;

#include <iostream>

class nik{

public:
int a;

nik(int a)
{
this->a=a;
}
void stampa(){
cout<<"a="<<a<<endl;
}

};

nik &operator+(nik ax,nik bx);

int main(){

nik k(1);
nik l(1);

nik m=(k+l);

m.stampa();

return 0;
}


nik &operator+(nik ax,nik bx)
{
int a=ax.a;
int b=bx.a;

nik *v=new nik(a+b);

return *v;

}



:ciauz:

Bocos
21-05-2004, 00:03
mi fa sempre molto piacere che qualcuno risponda,
purtroppo l'operatore + sono riuscito ad implementarlo senza troppe difficolta.


questo costruttore è molto interessante, non avevo mai visto una cosa così prima...

nik(int a)
{
this->a=a;
}

perchè this->a piuttosto che this.a ?? mi sembra che -> si usa con i puntatori...

io avrei scritto così
nik(int x)
{
a=x;
}

La domanda è cmq rivolta all'operatore [] ...

double const &operator[](const int i) const{return (array[i]);}
double A = B[x];
//Funziona

B[x] = A
//Errore



Grazie

LeleFT
21-05-2004, 10:42
Originariamente inviato da Bocos
perchè this->a piuttosto che this.a ?? mi sembra che -> si usa con i puntatori...
Proprio perchè this è un puntatore.

Per il problema dell'overload dell'operatore [] ora non ho il mio fido manuale sotto mano. Forse questa sera riesco a risponderti.


Ciao. :ciauz:

nik600
21-05-2004, 15:59
scusate ma cosa fa l'operatore [] ?

Loading