Mam taką klasę, która zawiera w sobie tabelę punktów.
Chciałbym, żeby elementy tej tabeli można było wywoływać takim zapisem:
ObiektMojejKlasy[0].x = 1;
ObiektMojejKlasy[6].y = 81;
struct Point{ int x,y; };
class MojaKlasa
{
public:
int* tabela;
int length;
MojaKlasa (int len)
{
length = len;
tabela (int*) malloc(sizeof(Point)*len+sizeof(int));
tabela* = length;
}
Point* operator[] (int index)
{
if (index >= Length )
{
std::cout<<"Error: index "<<index<<" is out of range!\n";
Point P(-1,-1);
Point* pP;
pP = &P;
return pP;
}
Point* pP;
pP = (Point*)(tabela + 2*index);
return pP;
}
};
Zrobiłem już jedną funkcję operatorową, ale zapis przy jej użyciu wygląda inaczej niż tego potrzebuje:
MojaKlasa MK(10);
(*newCopy[0]).x = 99;
(*newCopy[1]).y = 65;
dodanie znacznika <code class="cpp"> - fp