ďťż

Ładny brzuch

Uważam, że w zamieszczonym rozwiązaniu do zadania drugiego z poprzedniego odcinka kursu jest błąd, a raczej niedopatrzenie. Zadaniem klasy jest przechowywanie informacji o liczbie swoich obiektów, jednak klasa ta może działać błędnie. Autor rozwiązania zapomniał o konstruktorze kopiującym. Skutkiem tego może być przyjęcie przez zmienną count wartości ujemnych. Przykład:

#include <iostream> using namespace std; class Klasa{ public: static int count; Klasa(){count++;}; ~Klasa() {cout << "count: " << --count << endl;} }; int Klasa::count = 0; int main(){ Klasa clss; Klasa clss2 = clss; Klasa clss3 = clss2; }

A wystarczyło dodać linijkę:

Klasa(Klasa&){count++;};

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •