Для C++, с помощью визуальных команд студии приглашения (2010) в качестве компилятора, Notepad ++ как редактортипа литье символа в строку в массиве члена статической сопзЬ
У меня такой специфический вопрос, который я не могу найти ответ Я ищу в поиске, так вот:
Что касается назначения программы с некоторыми ограничениями (я не могу использовать другую переменную).
У меня есть класс Карточка со статическим массивом константных элементов, называемым «faceName» в моем неприкасаемом файле заголовка.
Я инициализирую этот массив-член в моем файле реализации с оператором присваивания и списком строковых литералов.
Вместо скучного текста «Пики» и «Сердца» и т. Д. Для имен костюмов я хочу использовать коды char ascii 3,4,5 и 6 для фактических символов.
Я не могу понять, как преобразовать переменные char в то, что может прочитать строка, а затем загрузить их в строку все в одной строке (так как константу нельзя изменить позже, и я не могу на самом деле создание гольца в основном, и должно быть сделано свободно плавающей в файле реализация.
уже много лет, так как я запрограммирован, извините за мое плохое использование лексики, если я сказал что-то неправильное.
Card.h
class Card
{
private:
int face;
int suit;
static const int NUM_OF_SUITS = 4;
static const int FACES_PER_SUIT = 13;
static const string suitName[NUM_OF_SUITS];
static const string faceName[FACES_PER_SUIT];
public:
string toString() const;
}
Card.cpp
const string Card::faceName[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"}
const string Card::suitName[] = {(char)3, (char)4, (char)5, (char)6}
string Card::toString() const
{
string nameOfCard;
if (suit >= 0 && suit <= NUM_OF_SUITS && face >= 0 && face <= FACES_PER_SUIT)
{
nameOfCard = faceName[face] + " of " + suitName[suit];
}
else nameOfCard = "Error, card type doesn't exist.";
return nameOfCard;
}
и мою ошибку: card.cpp (14): ошибка C2440: 'инициализации': не может конвертировать из 'полукокса' в 'сопзЬ станд :: строка' Ни один конструктор не мог взять тип источника, или разрешение перегрузки конструктора было неоднозначным
И я не могу просто создать sstream для преобразования, потому что, где бы я это сделал? В основном - слишком поздно, мне нужно инициализировать массивы-члены в файле реализации.
Спасибо за помощь!
При использовании:
char a = 3; cout << a << endl;
Я получаю символ, отображающийся в командной консоли просто отлично. – Numerials
Спасибо, ваш код работал безупречно! – Numerials