2013-07-07 18 views
6

Ecco il mio principale. Tutto quello che sto cercando di fare è creare un oggetto del file di classe, questa è probabilmente una domanda molto noisista così dispiaciuta, ho solo bisogno di sapere cosa sto facendo male.Perché non viene creato questo oggetto? C++

#include <iostream> 
#include "Player.h" 

using std::cout; 
using std::cin; 

int main() 
{ 
    cout << "Hello and welcome to the student adventures game.\n"; 

    Player player1(); 
} 
+2

+1 perché c'è gente che preferisce parlare di meno dell'insegnamento. – Theraot

+0

@Theraot: il mio downvote era di insegnare, per insegnare che questa era una brutta domanda. Come fa a sapere che questo oggetto non è stato creato? Dovrebbe essere compilato (non si può sapere con certezza senza 'PLayer.h'), non usa mai player1, quindi qual è l'errore esatto? – KillianDS

+7

Questo è un duplicato e dovrebbe essere chiuso. Sono in una minoranza che pensa che solo perché qualcosa è un duplicato non dovrebbe essere downvoted –

risposta

12

È dichiarata una funzione che restituiscono il tipo Player, vedere most vexing parse

Per definire un oggetto, provare a aggiornare

Player player1(); 

a

Player player1; 
+4

Downvoter, spiega plz – billz

+0

ahh, sapevo che sarebbe stato ovvio, grazie mille mi hai davvero aiutato :) –

+0

@ Benjamin-Cox Vedi http://stackoverflow.com/questions/1424510/most-vexing-parse -why-doesnt-aa-work per i dettagli – SomeWittyUsername

4

Si consiglia di non utilizzare il parentesi quando si dichiara un oggetto senza parametri, altrimenti il ​​compilatore penserà che tu sia e dichiara una funzione che restituisce un valore Player e che non accetta alcun parametro.

+0

Mi sono sempre chiesto quale fosse il ritorno 0 per lol, e sì questo è stato, grazie mille. –

+3

Spero che la modifica sia corretta, ho rimosso la parte irrilevante (& errata). –

Problemi correlati