Portál AbcLinuxu, 12. května 2025 02:08
Řešení dotazu:
//main.cpp
#include "foo.h"
int main(int argc, char *argv[])
{
struktura.i = 5;
func();
return 0;
}
//foo.h
#ifndef FOO_H
#define FOO_H
struct myStruct { int i; } struktura;
void func();
#endif
//foo.cpp
#include "foo.h:"
void func() { struktura.i = 4; }
Vede k chybe Multiple definition of struktura.
Uz jsem prisel na to, ze problem je proste ve vicenasobne definici (necekane :D ) promenne "struktura", kdyz si nainkluduju hlavicku i do main.cpp... jenomze co s tim? Co kdyz budu chtit pouzivat globalni promenne, jako jsem byl zvykly treba v Cecku?
GyroStruct {...}; // deklarace typua přidej
extern GyroStruct gyroVals; // deklarace, že symbol gyroVals existujeV právě jednom .cc pak budeš mít
GyroStruct gyroVals; // definice, co symbol gyroVals znamenáNicméně tento přístup je z pohledu návrhu aplikace špatně a měl bys to udělat jinak.
Ja jako v C++ moc neumim, akorat jsem se na stredni ucil v C.To je ovsem problem, na ktery budes narazet neustale. Doporucuju zacit knizkou o C a pokracovat knizkou o C++, jinak toho moc nenaprogramujes...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.