#include <iostream>
class Tablica {
public:
Tablica(unsigned r) {
rozmiar = r;
tab = new int[rozmiar];
}
~Tablica() {
delete[] tab;
}
Tablica(const Tablica& inna) = delete;
Tablica& operator=(const Tablica&) = delete;
unsigned getRozmiar() const {
return rozmiar;
}
//typ this: Tablica* const
//typ tab: int*
//zwracamy referencje na tab[idx]
int& operator[](unsigned idx) {
std::cout << "nieconstowy\n";
return tab[idx];
}
//typ this: const Tablica* const
int operator[](unsigned idx) const {
std::cout << "CONST\n";
return tab[idx];
}
void dodaj(int x){
getRozmiar() = new int(x);
for (unsigned i = tab.getRozmiar; i < x(); i++) {
std::cout << i << ":\t " << tab[i] << '\n';
}
}
private:
unsigned rozmiar;
int* tab;
};
Witam, otóż mam problem ze swoją funkcją void dodaj (zaznaczona na biało). Podczas kompilacji wyskakuje mi komunikat "lvalue required as left operand of assignment", a ogólnie w tej funkcji void chodziło mi o dodanie nowego elementu x na końcu tablicy. Macie jakieś porady co poszło nie tak?