
//
// To jest przykładowy kod z podrozdziału 18.4 „Uzyskiwanie dostępu do elementów wektora” książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include <iostream>

using std::cout;

//------------------------------------------------------------------------------

class vector {
    int sz;          // rozmiar
    double* elem;    // wskaźnik na elementy
public:
    vector(int s) :sz(s), elem(new double[s]) { } // konstruktor
    ~vector() { delete[] elem; }                  // destruktor
    int size() const { return sz; }               // aktualny rozmiar
    double& operator[](int n) { return elem[n]; } // zwraca referencję
};

//------------------------------------------------------------------------------

int main()
{
    vector v(10);
    for (int i=0; i<v.size(); ++i) {    // Działa!
        v[i] = i;            // v[i] zwraca referencję do elementu i
        cout << v[i];
    }
}

//------------------------------------------------------------------------------
