Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto a newbie in C++
Forum - C/C++ - Aiuto a newbie in C++

Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

Segnala al moderatore
Postato alle 14:36
Martedì, 15/12/2009
Ieri ho iniziato a leggere le guida di html.it sul c++. Da subito ho deciso che avrei associato alla teoria la pratica e, al primo codice (il fatidico hello word!) ho provato a scrivere e compilare...non ci sono riuscito ma il punto non è questo. Non ho ben capito cosa cambia tra file di intestazione (.h) e file c++ (.cpp). Cosa cambia?
Inoltre: quando apro un nuovo progetto con Microsoft Visual C++ 2008 Express Edition mi propone di fare l'intestazione precompilata...è consigliata o no?
Inoltre: quando creo un nuovo progetto ho capito che la funzione main (quella principale) dovrà essere presente solo in un file. Un ultima cosa: non ho ben capito cos'è la funzione
Codice sorgente - presumibilmente C/C++

  1. #include <iostream.h>


qualcuno gentilmente me lo potrebbe spiegare?

Grazie

SC


Hey, sono anche su Twitter! www.twitter.com/simonecassin
PM Quote
Avatar
matteoiamma (Member)
Pro


Messaggi: 74
Iscritto: 18/06/2008

Segnala al moderatore
Postato alle 14:46
Martedì, 15/12/2009
Ciao,
quello segnalato da te è un codice che nel php corrisponde alla funzione include,
quindi serve per includere/implementare il file.

Per quanto riguarda l'intestazione precompilata,
mi viene da pensare che agli inizi è meglio sconsigliarla.


Non dire intelligente solo a chi la pensa come te
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:03
Martedì, 15/12/2009
anche io ho visto quella guida ma è vecchia e rozza (a mio parere)...compra un libro oppure vai su siti come cprogramming.com :)

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 15:19
Martedì, 15/12/2009
Come ti ho già detto in chat. Comprati un manuale, e studiati bene. Inutile studiare dalle guide online.


"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
cit. theprogrammer
PM Quote
Avatar
ingMark (Ex-Member)
Pro


Messaggi: 176
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 16:10
Martedì, 15/12/2009
innanzitutto mi associo agli altri utenti nel dirti di lasciar perdere quella guida, non per un pregiudizio sulle guide online, ma per il semplice fatto che non ti spiega nemmeno la differenza tra .h e .c (o .cpp).

Però ora rispondo anche alle tue domande :k:
Testo quotato

Postato originariamente da cassin.simone:
Ieri ho iniziato a leggere le guida di html.it sul c++. Da subito ho deciso che avrei associato alla teoria la pratica e, al primo codice (il fatidico hello word!) ho provato a scrivere e compilare...non ci sono riuscito ma il punto non è questo. Non ho ben capito cosa cambia tra file di intestazione (.h) e file c++ (.cpp). Cosa cambia?



Il file .h viene detto header.
Al suo interno stanno (dovrebbero stare) solamente i typedef, i prototipi delle funzioni, le costanti e più in generale le direttive del preprocessore. (non mi dilungo per non confonderti)

Il file .cpp invece contiene il codice delle funzioni elencate nel .h .
Per convenzioni .h e .cpp dovrebbero avere lo stesso nome.

Eccoti un banale esempio:
Codice sorgente - presumibilmente C/C++

  1. //mia_lib.h
  2. #DEFINE MAX 10
  3.  
  4. typedef enum{VUOTO, PIENO} stato;
  5. void svuota(int vettore[]);



Codice sorgente - presumibilmente C/C++

  1. //mia_lib.cpp
  2. #include "mia_lib.h" //le virgolette (e non <>) indicano al compilatore di cercarlo nella
  3.                      //cartella in cui ci sono i file sorgenti.
  4.  
  5. void svuota(int *vettore)
  6. {
  7. int i;
  8. for(i = 0; i < MAX; i++)
  9.    vettore[i] = VUOTO;
  10. }



Se volessi mettere tutto nel .h il compilatore non segnalerebbe nessun errore e il programma funzionerenne correttamente, ma è concettualmente sbagliato!!!

Testo quotato

Postato originariamente da cassin.simone:
Inoltre: quando apro un nuovo progetto con Microsoft Visual C++ 2008 Express Edition mi propone di fare l'intestazione precompilata...è consigliata o no?


Qua non posso aiutarti, in quanto non usando visual studio, non so di cosa tu stia parlando, ma mi pare ti abbiano già risposto :k:

Testo quotato

Postato originariamente da cassin.simone:
Inoltre: quando creo un nuovo progetto ho capito che la funzione main (quella principale) dovrà essere presente solo in un file. Un ultima cosa: non ho ben capito cos'è la funzione
Codice sorgente - presumibilmente C/C++

  1. #include <iostream.h>


qualcuno gentilmente me lo potrebbe spiegare?

Grazie

SC



#include <iostream> non è una funzione ma "qualcosa" che dice al compilatore dove andare a cercare alcune funzioni che utilizzerai (ad esempio cin e cout in questo caso).
In quanto al main, si deve essercene solamente uno che andrà ad utilizzare le altre funzioni da te costruite nei vari file .cpp.

CONSIGLIO: visto che il c e il c++ sono già abbastanza difficili di loro, non andare a complicarti la vita con inutili file aggiuntivi.
Per il momento fai tutto in un solo file. ;)


Mamma diceva sempre che stupido è chi lo stupido fa.
PM Quote
Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

Segnala al moderatore
Postato alle 16:50
Martedì, 15/12/2009
Grazie per le numerose "dritte" e spegazioni. Il manuale lo chiederò per natale e, nel frattempo, volevo almeno acquisire 1/100 di basi...
Guardando per il web ho trovato un hello word almeno apparentemente funzionante. Il codice è questo:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.    cout << "Hello World!" << endl;
  6.  
  7.    return 0;
  8. }


A parte che non viene spiegato cosa vuol dire <<endl...ho compilato e non mi da errore. Però (non so se sia capitato a tutti) mi è venuto fuori un messaggio del tipo (vedi allegato).
Ho già provato (come consigliato nel messaggio) a reinstallare il compilatore (Microsoft Visual C++ 2008 express edition) ma il risultato è pressochè identico. Non so se sbaglio io o se è un problema comune...potete aiutarmi?

Grazie

Il vostro newbie,
SC


cassin.simone ha allegato un file: Immagine.gif (11488 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da cassin.simone il 15/12/2009 alle 16:53


Hey, sono anche su Twitter! www.twitter.com/simonecassin
PM Quote
Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

Segnala al moderatore
Postato alle 18:08
Martedì, 15/12/2009
Risolto tutto...grazie all'aituo di manvb.net matteoiamma e tutti voi...grazie ancora.
P.S.non passerà molto tempo prima che ri-posti nella stessa sezione ;):D


Hey, sono anche su Twitter! www.twitter.com/simonecassin
PM Quote