- Apple iPhone 17 Pro Max – fennsík
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Nem lesz iPhone 19
- A legolcsóbb és a legdrágább új iPhone fogy a legjobban
- iPhone topik
- Xiaomi 15T Pro - a téma nincs lezárva
- Lecsap az S26 Ultra az Exynos 2600-ra
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- 2.1-es Bose sztereó hangrendszer a Redmi K90 Pro Maxban
- Apple iPhone Air - almacsutka
Ú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!
- One otthoni szolgáltatások (TV, internet, telefon)
- Kerékpárosok, bringások ide!
- Autós kamerák
- CASIO órák kedvelők topicja!
- Mazda topik
- Apple iPhone 17 Pro Max – fennsík
- BestBuy topik
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- sziku69: Szólánc.
- További aktív témák...
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600 / GTX 1080 8GB / 32GB DDR4 / 512 SSD!
- BESZÁMÍTÁS! ASUS ROG B450 R5 5600X 32GB DDR4 512GB SSD RTX 4060Ti 16GB Zalman S2 TG Enermax 650W
- Microsoft Surface Laptop 5 i5-1245U 16GB 512GB 13.5" Gorilla Glass TouchScreen 1 év garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 5 9600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- MacBook Pro 13, 14, 15, 16, MacBook Air M1, M2 M3 M4 bill magyarosítás lézerrel / sapkacserével
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő