У меня есть основная часть игры, и я пытаюсь добраться до метода .go () - PullRequest
0 голосов
/ 20 ноября 2018

, но при этом компилятор VS кричит, что expression must have class type, хотя в приведенной выше строке я сделал экземпляр этого класса, теперь я работаю над этим проектом из стека, а не кучи, поэтому я не хочу использоватьnew, как бы мне потом удалить этот экземпляр ... какой-нибудь совет?это то, что я пытался сделать,

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

 int main()
    {
     Game g();
     g.go();
     return 0;
    }

1 Ответ

0 голосов
/ 20 ноября 2018

Как уже упоминалось в комментариях, вам нужно изменить Game g(); на Game g;.Вы можете использовать круглые скобки, только когда у вас есть значения для передачи в конструктор.Например, если ваш конструктор был:

 Game(std::string player, int damage);

Тогда ваш код должен быть:

Game g("MyGuy", 22);

Однако, когда вы просто делаете Game g();, компилятор читает его так, как вы пытаетесьобъявить функцию, которой вы, конечно же, не являетесь.

...