C++ #include bajok: hogy javíthatnám ki?
Van egy (röviden) a.cpp-m és egy b.cpp-m. Az a.cpp-ben van minden, ami fontos. a b.cpp-ben egy metódus van. A b.h headerben pedig egy class és almembereinek a deklarációja.
Gyanítom, hogy a program azért nem működik, mivel a.cpp-be és b.cpp-be is #include-oltam a következőket:
#include <iostream>
#include <fstream>
#include <b.h> //ez tartalmazza a #include <string>-et is.
Ismétlem, ez a 3 mind a két .cpp fájlba include-olva van.
Két hibakódot kaptam, az LNK2005-öt és az LNK1169-et (ami az LNK2005 miatti fatal error hibakódja). Ha a b.cpp-beli metódust kitörlöm, a helyzet nem változik. Ha a teljes b.cpp-t kitörlöm (kommentté teszem), akkor lefut a program maradék része.
Mit tegyek, hogy elkerüljem/kijavítsam ezt a hibát?
Van include védelme.
b.h tartalma:
#ifndef B_H
#define B_H
class c{stuff}things;
#endif
Akkor lesz egy azonos nevű változód, osztályod, akármid a két cpp-ben.
Egyfelől másold be a teljes hibaüzenetet, ne csak a hibakódot, másfelől meg a kódokat tedd fel valahova, kód nélkül csak Gyurcsók pista tud kódot javítani :-)
Hibakód 1:error LNK2005: "class Entity player" (dolog) already defined in main_file.obj b.obj
Hib akód 2: error LNK1169: one or more multiply defined symbols found
a b.h-t macskakörmökkel ("") include-oltam.
a tényleges programban Entity a class neve, igen.
A probléma megoldódott. a headerben deklaráltam a class egy objektumát.
Köszönöm a segítséget mindenkinek! Zöldkéz nektek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!