【发布时间】:2018-10-24 12:18:49
【问题描述】:
我在头文件中有一个类,我正在尝试在给定特定输入的情况下实现初始化。 所以我的头文件不包括头文件看起来像这样:
class Card {
public:
// rank and suit names
static constexpr const char* const RANK_TWO = "Two";
static constexpr const char* const RANK_THREE = "Three";
static constexpr const char* const RANK_FOUR = "Four";
static constexpr const char* const RANK_FIVE = "Five";
static constexpr const char* const RANK_SIX = "Six";
static constexpr const char* const RANK_SEVEN = "Seven";
static constexpr const char* const RANK_EIGHT = "Eight";
static constexpr const char* const RANK_NINE = "Nine";
static constexpr const char* const RANK_TEN = "Ten";
static constexpr const char* const SUIT_SPADES = "Spades";
static constexpr const char* const SUIT_HEARTS = "Hearts";
static constexpr const char* const SUIT_CLUBS = "Clubs";
static constexpr const char* const SUIT_DIAMONDS = "Diamonds";
Card();
Card(const std::string &rank_in, const std::string &suit_in);
private:
std::string rank;
std::string suit;
};
对于第二个初始化器的实现,到目前为止我有这个。
Card::Card(const std::string &rank_in, const std::string &suit_in){
this->rank = rank_in;
this->suit = suit_in;
}
要检查我的 rank_in 和 suit_in 是否匹配类中的一个变量,我是否需要单独检查每个变量,或者有没有更有效的方法?非常感谢您的帮助
【问题讨论】:
-
初始化器是指构造器,对吗??
-
附带说明一下,为什么您使用 C 风格的字符串而不是 std::string 作为等级和西装名称?
-
@Caw:当你在编译时知道字符串并且可以标记它
constexpr时,为什么还要使用std::string?
标签: c++ class c++11 variables initialization