Hirdetés
- hcl: Mér' nem mér?
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Magga: PLEX: multimédia az egész lakásban
- leslieke: leslieke farmerzsebe
- Gurulunk, WAZE?!
- Autódiagnosztika: a gyakorlatban
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél!
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
nonsen5e
#3826
üzenetére
.hpp-be lehetőleg ne tegyél fv. vagy globális változó defíníciót (csak deklarációt), mert ezeket beinklúdolod a különböző fordítási egységekbe, amik le is fordulnak, de mindegyik object kódban megjelenik a beinklúdolt fv. kódja, amit a linker többszörös definíciónak vesz. Pl:
//akarmi.hpp
#ifndef _AKARMI_HPP_
#define _AKARMI_HPP_
int f(int x){
return x;
}
#endif
//akarmi1.cpp
#include "akarmi.hpp"
#include <stdio.h>
int g(int x);
void main(void){
printf("%d",f(5));
printf("%d",g(6));
}
//akarmi2.cpp
#include "akarmi.hpp"
int g(int x){
return f(x);
}Itt az akarmi1.cpp-be, és az akarmi 2.cpp-be is bekerül az f fv. kódja, linkeléskor pedig dupla definíció miatt hibát ad a linker. Helyesen az akarmi.hpp-be csak deklaráció kerül (fv. prototype)
//akarmi.hpp
#ifndef _AKARMI_HPP_
#define _AKARMI_HPP_
int f(int x);
#endifés valamelyik .cpp állományba (akár új akarmi3.cpp-be) írod az f fv. definícióját.
Remélem tudtam segíteni. -
mgoogyi
senior tag
válasz
nonsen5e
#3826
üzenetére
Tudsz feltenni netre egy problémás minimál csomagot?
A leírásodból halvány fingom sincs, hogy mi lehet gond + nem tudok róla, hogy a .h és .hpp fileok között bármi különbség kéne legyen a kiterjesztésen kívül."rögtön különböző hibákra hivatkozik"
Konkrétan?"operator<< multiple deklarációra hivatkozik"
nem include-olod duplán ugyanazt véletlenül? (akár közvetetten is)
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Dollármilliárdokért vesz egy kritikus AI-összetevőt a Marvell
- CADA, Polymobil, és más építőkockák
- BestBuy topik
- hcl: Mér' nem mér?
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
- One mobilszolgáltatások
- Starlink
- One otthoni szolgáltatások (TV, internet, telefon)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- ASUS routerek
- További aktív témák...
- Lenovo T14S Thinkpad FHD IPS i5-1135G7 16GB RAM 256GB SSD Intel Iris XE Graphics Win11 Pro Garancia
- Bomba Ár! Fujitsu LifeBook S760 - i5-520M I 4GB I 160GB I DVDRW I 13,3" HD I HDMI I W10 I Garancia!
- FunXun BW-2328 hajszárító 1800 Watt / 12 hó jótállás
- Nikon D3500, Tükörreflexes (DSLR) fényképező
- Apple Watch Series 8 Silver aluminum 45mm / e-Sim / 6Hó Garancia
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

