Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-09-2006, 13:35   #1
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
[C++] problemi con gli header miei

Allora ragazzi ho un problemaccio. non sono capace di farmi una mia libreria corretta poichè al momento della compilazione mi da errore il linker.
premetto che uso borland c++

allora suddivido il mio bel listato in 3 files:

un header.h dove ho messo la dichiarazione delle classi

un header.cpp dove ho incluso header.h ed ho definito le funzioni di classe

un main.cpp dove ho incluso header.h ed ho definito la funzione main.

A questo punto sorge il problema: dovrebbe essere corretto in questo modo, invece l'unico modo per compilare è invece che includere header.h metterci header.cpp, allora funziona.
l'errore che mi da è come se non trovasse la definizione delle funzioni di classe in header.cpp

se senza che vi incollo il codice riuscite a dirmi dove sbaglio ok.. altirmenti lo incollo.

grazie a tutti, ciao
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W

Ultima modifica di Vecchia Spugna : 12-09-2006 alle 13:38.
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 13:46   #2
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
Quote:
Originariamente inviato da Vecchia Spugna
header.h dove ho messo la dichiarazione delle classi
header.cpp dove ho incluso header.h ed ho definito le funzioni di classe
main.cpp dove ho incluso header.h ed ho definito la funzione main.

A questo punto sorge il problema: dovrebbe essere corretto in questo modo, invece l'unico modo per compilare è invece che includere header.h metterci header.cpp, allora funziona.
l'errore che mi da è come se non trovasse la definizione delle funzioni di classe in header.cpp
se includi solo header.h, includi solo la classe, non le definizioni delle funzioni... se vuoi includere solo header.h credo tu debba modificarlo, scrivendoci in cima #include "header.cpp"
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 14:30   #3
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
non funziona, perchè in questo modo ha le definizioni prima delle dichiarazioni
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 14:47   #4
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
posta va che un'immagine ha piú di 1000 parole
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 15:00   #5
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
scatola.h
#ifndef SCATOLA_H
#define SCATOLA_H
#include <clx.h>
#pragma hdrstop

//---------------------------------------------------------------------------

using namespace std;
#pragma argsused
class scatola
{
public:
char tore[20];
char uto[20];
void visita();
void contenuto();
void contenitore();

};
#endif
//---------------------------------------------------------------------------



scatola.cpp
#ifndef SCATOLA_CPP
#define SCATOLA_CPP
#include <clx.h>
#include <iostream>
#include "scatola.h"
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
void scatola::visita()
{
cout << endl << tore << "\n" << uto;
}
void scatola::contenuto()
{
cout << "contenuto: " ;
cin >> uto;
cout << endl;
}
void scatola::contenitore()
{
cout << "contenitore: " ;
cin >> tore;
cout << endl;
}
#endif
//---------------------------------------------------------------------------

scatolone.cpp
#include <clx.h>
#include <conio>
#include <iostream>
#pragma hdrstop
#include "scatola.h"

//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
int main(int argc, char* argv[])
{
scatola scatolone;

scatolone.contenitore();
scatolone.contenuto();
scatolone.visita();
getch();
return 0;
}
//---------------------------------------------------------------------------
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 15:26   #6
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
Quote:
Originariamente inviato da Vecchia Spugna
non funziona, perchè in questo modo ha le definizioni prima delle dichiarazioni
allora fai cosi
Codice:
---header.h---
//dic. classe
---header.cpp---
//def. funz. classe
---header2.h---
#include "header.h"
#include "header.cpp"
---main.cpp---
#include "header2.h"
//resto
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 15:41   #7
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da AngeL)
allora fai cosi
Codice:
---header.h---
//dic. classe
---header.cpp---
//def. funz. classe
---header2.h---
#include "header.h"
#include "header.cpp"
---main.cpp---
#include "header2.h"
//resto
includere un .cpp da un altro ???
il problema suo penso sia che non ha creato un progetto quindi non compila tutto.
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 16:18   #8
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
ma scusate.. quando aggiungo ad esempio stdio.h.. non dovrebbe essere la stessa identicissima cosa? quindi aggiungere solo il .h

il compilatore vede che sono collegati perchè hanno lo stesso nome?
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 17:46   #9
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
Quote:
Originariamente inviato da Vecchia Spugna
ma scusate.. quando aggiungo ad esempio stdio.h.. non dovrebbe essere la stessa identicissima cosa? quindi aggiungere solo il .h

il compilatore vede che sono collegati perchè hanno lo stesso nome?
ahahah dove l'hai letta questa xD
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 18:08   #10
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
ipotizzo visto che sono molto ignorante

quindi quando includo le librerie standard, che da qualche parte hanno anche l'intestazione e non solo l'header.. come fa il compilatore ad includerle?
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2006, 19:06   #11
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
ho trovato 3 files strutturati come i miei sicuramente funzionanti.. e il compilatore mi da lo stesso identico errore.. quindi l'errore non è di programmazione ma di compilazione. resta il dubbio su come sia invece possibile includere soglo gli header delle librerie di cui lui conosce il path
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2006, 01:58   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da AngeL)
allora fai cosi
Codice:
---header.h---
//dic. classe
---header.cpp---
//def. funz. classe
---header2.h---
#include "header.h"
#include "header.cpp"
---main.cpp---
#include "header2.h"
//resto
E' buona norma non includere mai i file cpp... Il compilatore include l'header nel sorgente per conoscere il prototipo di classi e funzioni che sono necessarie alla compilazione del cpp corrente...

I file cpp vengono tutti compilati in linguaggio oggetto dall'IDE...e dopo linkati... E' solo a questo punto che i vari cpp si devono incontrare...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2006, 08:43   #13
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da Vecchia Spugna
ho trovato 3 files strutturati come i miei sicuramente funzionanti.. e il compilatore mi da lo stesso identico errore.. quindi l'errore non è di programmazione ma di compilazione. resta il dubbio su come sia invece possibile includere soglo gli header delle librerie di cui lui conosce il path
che ne dici di postare l'errore ?
Forse mi sbaglio (alla cieca é difficile) ma sono arcisicuro che il compilatore non compila uno dei 2 .cpp che hai fatto.
Se non crei un progetto dove specifichi quali files sono da compilare o comunque non glielo dici in qualche modo, il compilatore non puó inventarselo.
Facci vedere l'errore e se trovi un file di nome makefile magari ce lo incolli quí
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2006, 15:41   #14
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
penso proprio che tu abbia ragione faccio 1 pò di prove e ti dico
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2006, 15:59   #15
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
cvd.
trallallero sei grande

in pratica questo schifo di ambiente di sviluppo gestisce le icone alla perfezione e non si preoccupa di spiegare bene cosa va a compilare.
c'è una cosina particolare da fare in modo che si aspetti che quel file cpp venga aggiunto al progetto, mentre al progetto stesso non devo aggiungere l'header e il cpp corrispondente all'header.
grazie a tutti ciao
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v