Cześć, czy takie podejście jest poprawne? Mam klasę Wiadomosc a po niej dziedzicza klasy Tekstowa, Ping (ta pierwsza to wiadomosc tekstowa, zawiera dodatkowe pole na tekst wiadomosci a druga to wiadomosc ping, nie zawiera zadnego dodatkowego pola). Mam zamiar dodac jeszcze inne typy Wiadomosci bardziej rozbudowane.
class Wiadomosc {
protected:
int size;
string type;
public:
//settery/gettery
};
class Ping : public Wiadomosc {};
class Tekstowa : public Wiadomosc {
private:
string tekst;
public:
//setter, getter
};
I teraz to chcę przesłać jako argument do wysłania przez sieć.
void pinguj() {
Ping ping;
wyslij(ping);
}
Pomyślałem ze warto skorzystać z szablonów i zrobić coś takiego
template<class TWiadomosc> wyslij(TWiadomosc &wiadomosc) {
std::cout<<"Wiadomosc: "<<wiadomosc.gettekst()<<std::endl; //tylko zeby pokazac ze moge teraz dobrac sie do pol klasy pochodnej (bo //gdybym w parametrze dal Message & to bym ni mogl
//dalej serializacja i wysylanie
}
Poprawne jest to czy mozna lepiej? Pzdr