Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
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


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Googlebook pronto al debutto: Google apr...
Guida all'acquisto: quale lavapavimenti ...
Google Maps su Android Auto introduce fi...
AMD Ryzen 5 5500F: fino al 16% di presta...
L'ecosistema partner di Microsoft cresce...
Oracle registra un boom nella divisione ...
Amazon Prime Video sfida TikTok con le n...
L'uscita di Rayman Legends Retold &egrav...
Dazio UE sui pacchi extra UE, in Italia ...
La nuova lavatrice smart di Xiaomi ha tr...
Hai una PSP nel cassetto? Questo nuovo p...
Oracle presenta Java 27 con diverse novi...
Il microscopio dell'EPFL vede più...
Volvo avvia la produzione dei nuovi cami...
26 offerte Amazon da non perdere, da iPh...
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: 20:52.


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