Для операций, критичных к производительности, есть ли разница в выражении карты в виде целого числа / перечисления, структуры или класса?
целое число:
0 => Spade King 1 => Spade Queen 2 => Spade Jack . . . 51 => Club Two
структура:
Struct Card { Suit GivenSuit; Rank GivenRank; Some functions... }`
Класс:
Class Card { Card(); Suit GivenSuit; Rank GivenRank; Some functions... }
Если карточки были определены как целые числа в вызывающем классе, это может быть немного более эффективным в отношении времени доступа, чем доступ к классу вне вызывающего класса.
Но это может быть микроОптимизация вашего решения и компромисс между функциональностью и эффективностью с точки зрения наносекундсоблюдение принципов ООП дизайна для использования класса Card.Использование целых чисел сделает ваш класс многоразовым и хрупким.
Как насчет enum и пары.
enum CardsValues { Ace = 1,2,3,4,5,6,8,9 Jack = 10, Queen, King, } enum CardColour { Spade, ... } std::pair<CardValue, CardColour> theCard;