Kezdőoldal » Számítástechnika » Programozás » C++ #include bajok: hogy...

C++ #include bajok: hogy javíthatnám ki?

Figyelt kérdés

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?



2014. dec. 30. 23:20
 1/7 anonim ***** válasza:
Első tippem például az, hogy a b.h-nak nincs include védelme. Csak egy helyen includeold, ne mindkét helyen.
2014. dec. 31. 00:25
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

Van include védelme.

b.h tartalma:

#ifndef B_H

#define B_H

class c{stuff}things;

#endif

2014. dec. 31. 00:27
 3/7 anonim ***** válasza:
Némelyik fordító <> ezt az include mappában keresi, "" ezt meg a gyökérkönyvtárban. Tehát ezt próbáld: #include "b.h"
2014. dec. 31. 00:31
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

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 :-)

2014. dec. 31. 00:34
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

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.

2014. dec. 31. 00:54
 6/7 anonim ***** válasza:
a main_file.cppdben is van egy class Dolog. vagy class Entity(?), ezért dob hibát. Egy ilyen, csak egy helyen szerepeljen.
2014. dec. 31. 01:12
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:

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.

2014. dec. 31. 02:07

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!