簡體   English   中英

如何在類成員中初始化“ static const char * []”?[C ++]

[英]How to initial “static const char * []” in class member?[C++]

當我做作業時,問題要求我完成給定的課程:

//Card.hpp
class Card {
private:
    static const char* faceNames[totalFaces];
};

我在Card.cpp編寫mycode:

const char* faceNames[Card::totalFaces] = { "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };

我使用VS2017來構建它,但是它表明

error LNK2001: unresolved external symbol "private: static char const * * Card::faceNames" (?faceNames@Card@@0PAPBDA)

我應該怎么做?

您可以在類外定義它,而無需指定大小。 您不必再次指定大小。 請注意::在類外部定義成員的要求。

const char* Card::faceNames[] = { "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };

演示版

當您打算定義靜態成員時,意外地定義了一個不相關的數組faceNames 您需要使用::符號來命名類的靜態成員:

const char* Card::faceNames[Card::totalFaces] = { "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM