У меня есть эта строка в моем конструкторе по умолчанию Blackjack.
m_players[0].SetPlayerName("Jane");
Это использует setter в моем классе Player, чтобы установить имя игрока как Jane.
Мой конструктор Player - это.
Player::Player()
{
Player player;
player.m_funds = 0;
player.m_name = "";
player.m_bet = 0;
player.m_busted = false;
}
И, для получения дополнительной информации, мой метод SetPlayerName.
void Player::SetPlayerName(char name)
{
m_name = name;
}
Как исправить эту ошибку преобразования? Я просто пытаюсь установить имя игрока как char. Благодарю!
Я просто пытаюсь настроить конструктор по умолчанию с одним игроком, Джейн.
Строковый литерал (что-то вроде "Foobar"
имеет тип const char[N]
где N
- количество символов + 1 (для нулевого терминатора), что означает массив из N
char
.
Ваша переменная m_name
похоже, имеет тип char
который является единственным символом.
Невозможно преобразовать массив const char[N]
в char
. Вы действительно хотите, чтобы m_name
было типа std::string
или, возможно, const char*
.
Почему const char*
? const char[N]
распадается на const char*
и может указывать на литерал любого размера.
char
, так что если OP не скопировал ошибку неправильно, это не так.