2013-07-07 9 views
6

Oto moja główna. Wszystko, co próbuję zrobić, to stworzyć obiekt pliku klasowego, jest to prawdopodobnie bardzo nieobowiązkowe pytanie tak bardzo przepraszam, po prostu muszę wiedzieć, co robię źle.Dlaczego obiekt ten nie zostanie utworzony? 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, ponieważ są ludzie, którzy wolą lekceważyć nauczanie. – Theraot

+0

@ Theraot: moim spadkiem było nauczanie, nauczanie, że to było złe pytanie. W jaki sposób wykrywa, że ​​ten obiekt nie jest tworzony? Powinien się skompilować (nie może być pewny bez 'PLayer.h'), nigdy nie używa odtwarzacza1, więc jaki jest dokładny błąd? – KillianDS

+7

To jest duplikat i powinien zostać zamknięty. Jestem w mniejszości, która uważa, że ​​tylko dlatego, że coś jest duplikatem, nie powinno się go obniżać. –

Odpowiedz

12

zadeklarowanej funkcji które zwracają typ gracza, zobaczyć most vexing parse

Aby zdefiniować obiekt, spróbuj zaktualizować

Player player1(); 

do

Player player1; 
+4

Downvoter, wyjaśnij plz – billz

+0

ahh, wiedziałem, że to będzie oczywiste, wielkie dzięki, bardzo mi pomogłeś :) –

+0

@ Benjamin-Cox Zobacz http://stackoverflow.com/questions/1424510/most-vexing-parse -Dlaczego-nie robi-a-pracy dla szczegółów – SomeWittyUsername

4

Nie należy używać nawiasy przy zadeklarowaniu obiektu bez parametrów, inaczej kompilator pomyśli o tym e deklaruje funkcję, która zwraca wartość Player i która nie przyjmuje parametru.

+0

Zawsze zastanawiałem się, jaki był zwrot 0 dla lol, i tak, to się udało, wielkie dzięki. –

+3

Mam nadzieję, że edycja jest w porządku, usunąłem nieistotną (i złą) część. –

Powiązane problemy