C++ , vytvoření instance třídy s parametrem jiné třídy

Petr Zapadlo zapik na email.cz
Sobota Říjen 30 07:00:20 CEST 2021


Zdravím,

pokouším se vniknout do C++ tříd a když už jsem měl pocit, že "tuším" 
tak jsem zase narazil na zakopaného psa.

V main.cpp vytvářím:

#include <Syslog.h>
#include <Logsys.h>

WiFiUDP udpClient;
Syslog syslog(udpClient, SYSLOG_SERVER, SYSLOG_PORT, DEVICE_HOSTNAME, 
APP_NAME, LOG_KERN);
Logsys logsys(syslog);

Tj, vytvořím (aspoň tak to chápu já) instanci třídy Syslog  a pak to 
pomocí reference chci předat do své vlastní třídy Logsys.

Logsys.h:

class Logsys
   {
       private:
         uint8_t test=0;
       public:
         Logsys(Syslog &s_log); //>>>>"expected ')' before '&' token"
         bool send(String text);
   };

Logsys.cpp:

Logsys::Logsys(Syslog s_log){      //>>>>"expected constructor, 
destructor, or type conversion before '(' token"
}
bool Logsys::send(String text){
   return (false);
}

V komentářích je uvedena linterem prezentovaná chyba.

Knihovna Syslog je tato:

https://github.com/arcao/Syslog/blob/master/src/Syslog.h

Pokud dám jako typ parametru třídy nějaký normální typ (třeba uint8_t) 
tak kompilace projde.

Cílem je abych se uvnitř třídy Logsys mohl využívat vytvořenou instanci 
syslog.

Co jsem nepochopil?

Díky

Petr




Další informace o konferenci Hw-list