Chcialbym stworzyc, ale nie wiem jeszcze jak, kod w ktorym jest klasa bazowa, ktora zawiera pole statyczne zliczajace ilosc stworzonych obiektow pochodnych, np mam klase nadrzedna osoba i dwie klasy pochodne np. uczen i nauczyciel i chce tworzyc obiekty tylko tych klas pochodnych(znaczy sie musze zrobic klase osoba klasa abstrakcyjna) tylko nie wiem jak zrobic aby stworzenie obiektow klas pochodnych pociagalo za soba modyfikacje licznika obiektow w sekcji chronionej klasy bazowej(pewnie chodzi cos o dziedziczenie konstruktorow), mam przykladowy kod w ktorym zliczana jest ilosc obiektow tej samej klasy, a nie wiem jak zmodyfikowac go tak aby mozna bylo tylko tworzyc obiekty pochodne i to one bylyby zliczane w polu klasy bazowej Osoba:
#include <iostream>
#include <vector>
#include <string>
#include <cstdlib>
using namespace std;
class Osoba
{
public:
static int counter;
string name;
Osoba(string n) : name(n)
{
++counter;
cout << "Zwiekszam\n ";
}
string getName()
{
return name;
}
};
int Osoba::counter = 0;
int main(int argc, char *argv[])
{
vector<Osoba> vec;
string objectName;
do
{
cout << "Podaj nazwe obiektu (exit = wyjscie) :";
cin >> objectName;
if(objectName == "exit")
break;
vec.push_back(Osoba(objectName));
}
while(true);
cout << "Podales: " << Osoba::counter << " obiektow\n";
for(int i = 0; i < Osoba::counter; i++)
cout << "Obiekt nr: " << i << " posiada nazwe " << vec[i].getName() << endl;
return EXIT_SUCCESS;
}