Параметры конструктора C ++: string, int, int, int - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь объявить конструктор с четырьмя параметрами со строкой и три int. Я не могу использовать с использованием пространства имен std где-либо в моем коде в соответствии с моими правилами назначения.

Конструктор в файле реализации:

Player (std::string w, int x, int y, int z)
{
}

У меня есть файл заголовка для спецификации класса, файл реализации функции класса и файл основного метода. Я использовал #include как в файле основного метода, так и в файле реализации в процессе проб и ошибок, но в среде IDE постоянно говорят, что ожидается «)» или точка с запятой. Но точка с запятой не будет работать, потому что это определение конструктора. Я в тупике.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Не использовать "using namespace std;": Хорошо, используйте "using std::string;".И только в исходных файлах, а не в заголовочных файлах, я настоятельно рекомендую.

Если определение находится за пределами объявления класса, вы должны написать имя класса перед именами конструктора (и функции-члена):

Player::Player( std::string w, ...)
{
}

void Player::func( ...)
{
}
0 голосов
/ 09 мая 2018

main.cc

#include "player.h"

int main() {
    Player x("player_x", 1, 2, 3);
}

player.h

#ifndef YOUR_PROJECT_PLAYER_H
#define YOUR_PROJECT_PLAYER_H
#include <string>

class Player {
 public:
  Player(std::string w, int x, int y, int z);
};

#endif

player.cc

#include "player.h"

Player::Player(std::string w, int x, int y, int z) {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...