Oppure

Loading
15/12/09 13:36
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?
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
#include <iostream.h>

qualcuno gentilmente me lo potrebbe spiegare?

Grazie

SC
aaa
15/12/09 13:46
matteoiamma
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.
aaa
15/12/09 14:03
anche io ho visto quella guida ma è vecchia e rozza (a mio parere)...compra un libro oppure vai su siti come cprogramming.com :)
15/12/09 14:19
Lawliet
Come ti ho già detto in chat. Comprati un manuale, e studiati bene. Inutile studiare dalle guide online.
aaa
15/12/09 15:10
ingMark
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:
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:
//mia_lib.h
#DEFINE MAX 10

typedef enum{VUOTO, PIENO} stato;
void svuota(int vettore[]);



//mia_lib.cpp
#include "mia_lib.h" //le virgolette (e non <>) indicano al compilatore di cercarlo nella
                     //cartella in cui ci sono i file sorgenti.

void svuota(int *vettore)
{
int i;
for(i = 0; i < MAX; i++)
   vettore[i] = VUOTO;
}


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

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:

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
#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. ;)
aaa
15/12/09 15:50
cassin.simone
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:
#include <iostream>
using namespace std;
int main()
{
   cout << "Hello World!" << endl;
 
   return 0;
}

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
Ultima modifica effettuata da cassin.simone 15/12/09 15:53
aaa
15/12/09 17:08
cassin.simone
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
aaa