Coders4fun Quiz #3: Compilerà?
Categories: Quiz
Tags:
Secondo voi questo pezzo di codice compila o no?? Perché??
foo.h
class Foo
{
public:
Foo();
void fooo();
private:
int i;
char c;
short s;
protected:
char b;
char e;
char getFoo();
}
foo.cpp
#include "foo.h"
Foo::Foo()
{
for (int i = 0; ; ) { }
}
void Foo::fooo()
{
while(true)
{
c = 'f';
}
}
char getFoo()
{;
return c + 2;
}
Se sei interessato a questo post, potresti anche provare a leggere:
-
No related posts
09 Gen 2008 dzamir
Non c’è un “;” di troppo nel ciclo FOR?
Hemmmm si… scusa ho sbagliato …. non era quello l’errore vero!
Adesso ho sistemato il post! Comunque hai azzeccato la risposta giusta pure se non era quella che volevo io
(per sbaglio avevo scritto nel post for (int i = 0; ; ; ) { } )
Eeeh… quello m’è saltato subito all’occhio… l’errore vero è più subdolo in effetti
Ho un lapsus:ma quel for sarebbe un loop infinito dico bene?
@Chris: si.. ma un for infinito comunque compila
ciao dzamir, scusa su steam non posso leggere i messaggi
mentre gioco. Mi spiace per il computer, che cosa si è rotto?
Mi sa che ti sei dimenticato un “;” alla fine della classe “foo.h”.
Inoltre hai messo un “;” di troppo nella funzione getFoo() nel cpp, giusto dopo l’apertura della graffa.
Ho azzeccato?
@sauron:
Il ; di troppo comunque non è un problema visto che compilerebbe comunque.
CI hai azzeccato in pieno
In realtà c’è un altro errore comunque.
@francobaldo1:
Mi si è rotto il pc con cui giocavo a Team Fortress 2 e non posso giocare più.. :’( Ci si ribecca fra qualche mese quando mi comprerò il pc nuovo!
Che altro errore c’è? Non riesco a trovare nulla!
ps: sono io che vi ho mandato ieri una mail di richiesta di aiuto
Lo ammetto non ho studiato… =’(
ma… c + 2 …il parsing è automatico?
@manny:
Comunque casualmente hai scoperto dov’è l’altro errore, visto che “c + 2″ viene utilizzato all’interno di una funzione non della classe, dove c non era dichiarata e quindi non poteva compilare. 
Si vede che non hai studiato!
In ogni caso, “c + 2″ può compilare lo stesso perché il parsing è automatico
che culo!
Veramente il parsing automatico in c++ non esiste, bisogna SEMPRE dichiarare le variabili prima di poterle utilizzare!
Prova