Jak wykorzystac klase w rownoleglym pliku ?

0

Mam taką sytuację:
Katalog o nazwie: TEST
W katalogu TEST jest plik main.cpp
Jest tez tam katalog o nazwie **DB **i o nazwie CLASS
W pliku main.cpp mam
#include "db/db.h"
#include "class/logger.h"
Teraz w pliku main.cpp wykorzystuje sobie klase logger.h

logger log;
log.append("test","test");

I teraz mam pytanie jak sprawic by w pliku db/db.h tez mozna bylo uzywac

log.append("test","test");
0

dokładnie tak samo, dołączając: #include "../class/logger.h"

0

Gdy tak robie mam info

In file included from server.cpp:11:
class/logger.h:8: error: redefinition of 'class logger'
db/../class/logger.h:8: error: previous definition of 'class logger'
class/logger.h:16: error: redefinition of 'void logger::append(std::string, std::string)'
db/../class/logger.h:16: error: 'void logger::append(std::string, std::string)' previously defined here

czyli ze juz jest taka klasa dolaczona ale nie moge jej uzyc bo wyskakuje blad jak robie w pliku db.h

logger log2;

a blad

In file included from server.cpp:10:
db/db.h:11: error: 'logger' does not name a type
0

Używaj include guards.

0

@Rev, ma na myśli:

#ifndef LOGGER_H
#define LOGGER_H
// tu to co masz dotychcias w logger.h 
// zapobiega to podwójnemu dołączaniu
#endif
0

Można też używać

#pragma once

wspierają to zdaje się wszystkie popularne kompilatory. Sam też tego jednak nie używam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1