2013-07-07 2 views
6

Вот мой главный. Все, что я пытаюсь сделать, это создать объект файла класса, это, вероятно, очень нубийческий вопрос, так что извините, просто нужно знать, что я делаю неправильно.Почему этот объект не создан? 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 потому что есть люди, которые предпочитают спускать над преподаванием. – Theraot

+0

@ Theraot: мой downvote должен был учить, чтобы научить, что это плохой вопрос. Как он обнаруживает, что этот объект не создан? Он должен компилироваться (не может точно знать без 'PLayer.h'), он никогда не использует player1, так что же такое ошибка? – KillianDS

+7

Это дубликат и его следует закрыть. Я в меньшинстве, который думает, что только потому, что что-то дублируется, его не следует ниспровергать –

ответ

12

Вы объявили функцию, возвращаемый тип игрока, см most vexing parse

Чтобы определить объект, попробуйте обновить

Player player1(); 

в

Player player1; 
+4

Downvoter, объясните plz – billz

+0

ahh, я знал, что это будет очевидно, спасибо, что вы мне очень помогли :) –

+0

@ Benjamin-Cox См. Http://stackoverflow.com/questions/1424510/most-vexing-parse -why-doesnt-aa-work для деталей – SomeWittyUsername

4

Вы не должны использовать скобки при объявлении объекта без параметров, иначе компилятор будет думать, что вы e объявляет функцию, которая возвращает Player и не принимает никаких параметров.

+0

Я всегда задавался вопросом, что такое возвращение 0 для LOL, и да, это получилось, спасибо большое. –

+3

Надеюсь, что редактирование в порядке, я удалил ненужную (и неправильную) часть. –

Смежные вопросы