Hirdetés
- Fotók, videók mobillal
- Minimális változásokat hozhat a Google Pixel 10a
- Mobil flották
- Okosóra és okoskiegészítő topik
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy A56 - megbízható középszerűség
- Szívós, szép és kitartó az új OnePlus óra
- Google Pixel topik
- Vivo X200 Pro - a kétszázát!
Ú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!
- Gamer PC-Számítógép! Csere-Beszámítás! R7 5700X / RX 6700XT 12GB / 32GB DDR4 / 1TB SSD Nvme
- Corsair Vengeance RGB DDR5 6000Mhz 2x16GB (32GB) DDR5 Memória
- 9 Év Alza Garancia! G.Skill Ripjaws M5 Neo RGB White DDR5 6000Mhz 2X16GB (32GB) DDR5 Memória
- Ryzen 9 9950X 16C/32T Processzor! Tray
- Viper Elite 5 RGB TUF Gaming 2x24GB DDR5 6000MHz CL36 - Új, Bontatlan, Gari 2034.09.23. -ig -
- BESZÁMÍTÁS! Lenovo Legion Go 512GB SSD kézikonzol garanciával hibátlan működéssel
- Apple iPhone 15 128GB,Újszerű,Dobozával,12 hónap garanciával
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
- UPDATE 11.13. HP üzleti laptopok Elitebook, Probook 4-13. gen gar.
- LG 27GR83Q-B - 27" IPS / QHD 2K / 240Hz & 1ms / NVIDIA G-Sync / FreeSync / DisplayHDR 400
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest


