Witam. Potrzebuję zliczać tworzone w programie obiekty klasy Wektor2D. Jednak gdy w definicji konstruktora lub destruktora odwołam się do pola Licznik w następujący sposób:
Wektor2D(){Licznik;}
to program działa i kompiluje się poprawnie.
Jednak gdy chcę zwiększać Licznik, w następujący sposób:
Wektor2D(){++Licznik;}
wyskakują jakieś dziwne błędy związane z linkowaniem
class Wektor2D {
private:
/*!
* \brief Zawartosc Wektora2D
*
* Pole zawiera dwie liczby bedace wspolrzednymi
* Wektora2D
*/
double _Tab2D[2];
protected:
static int Licznik;
public:
/*!
* \brief Uzyskuje dostep do pola
*/
double operator[](int i) const {return _Tab2D[i];}
/*!
* \brief Uzyskuje dostep do pola i pozwala na jego modyfikacje
*/
double &operator[](int i) {return _Tab2D[i];}
/*!
* \brief Dokonuje translacji o W_translacji
*/
Wektor2D operator+(const Wektor2D &W_translacji);
/*!
* \brief Dokonuje translacji o W_translacji
*/
Wektor2D operator-(const Wektor2D &W_translacji);
/*!
* \brief Wstawia poczatkowe wspolrzedne wektora
*/
void WstawPoczatkoweWspolrzedne(double i,double j);
/*!
* \brief Wpisuje wspolrzedne z wejscia standardowego
*/
friend istream& operator >> (istream &Strm, Wektor2D &Wek);
/*!
* \brief Wypisuje wspolrzedne na wyjscie standardowe
*/
friend ostream& operator << (ostream &Strm, const Wektor2D &Wek);
int static WezLicznik(){return Licznik;}
Wektor2D(){Licznik++;}
virtual ~Wektor2D(){Licznik--;}
};