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