Re: C++ , vytvoření instance třídy s parametrem jiné třídy
Miroslav Mraz
mrazik na volny.cz
Sobota Říjen 30 09:49:02 CEST 2021
To nebude jediný problém. Ať koukám jak chci, nevidím v deklaraci třídy
Logsys ten odkaz na Syslog. To, že je v konstruktoru je dobře, ale co
dál ? Abyste Syslog mohl opravdu používat v Logsys (ty názvy jsou
mimochodem hodně matoucí), musíte mít ten odkaz i jako (privátní) data
třídy Logsys a inicializovat ho v konstruktoru tt. třídy.
#ifndef _LOGSYS_H_
#define _LOGSYS_H_
class Syslog; // pro referenci stačí forward deklarace
class Logsys {
private:
Syslog & syslog; // <- !!! zde
public:
Logsys (Syslog & s_log);
// ...
};
#endif // _LOGSYS_H_
a vlastní inicialiazace v *.cpp (tady už můžete mít includnuté obě
hlavičky) je pak následující
Logsys::Logsys (Syslog & s_log) : syslog(s_log) {}
Mrazík
Dne 30. 10. 21 v 8:54 Petr Zapadlo napsal(a):
> Bingo,
>
> neměl jsem
>
> #include <Syslog.h>
>
> Logsys.h
>
> include byl jen main.cpp
>
>
> Díky
>
> Petr
>
Další informace o konferenci Hw-list