Hirdetés
Ú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!
- Azonnali fáradt gőzös kérdések órája
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Asztalos klub
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- YouTube
- Milyen egeret válasszak?
- Luck Dragon: Asszociációs játék. :)
- Vivo X300 - kicsiben jobban megéri
- Okosóra és okoskiegészítő topik
- EA Sports WRC '23
- További aktív témák...
- iPhone 13 Pro Max 256GB Graphite megkímélt állapotban eladó!
- AMD Radeon RX 7900XTX Vapor-X 24GB GDDR6 Nitro+( Gari 2028-ig)
- WACOM INTUOS Pen & Touch S - Digitalizáló rajztábla
- Új Gamer PC - Ryzen 7 5700 / RTX 5060 / A520M / 16GB RAM / 1TB SSD / 650W
- Új Philips Saeco GranAroma SM6580/00 2 év garancia
- Samsung Galaxy A54 128GB,Átlagos,Adatkabel,12 hónap garanciával
- Ducky One 3 FULL/TKL/SF/MINI billentyűzetek többféle színben és kapcsolókkal!
- Samsung Galaxy Z Fold7 Blue Shadow-12/512 GB Használt, karcmentes Garancia 2028. 09. 03-ig
- BESZÁMÍTÁS! ASUS H510M i5 10500 16GB DDR4 512GB SSD RX 6600 8GB Zalman T4 Plus ADATA 600W
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


