2017-03-25 52 views
0

当我做我的功课,这个问题问我,完成给定的类:如何开始的“静态为const char * []”中的类成员[C++]

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

我写mycode的在Card.cpp

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" ([email protected]@@0PAPBDA) 

应该怎么办?

+0

THX,我想我的代码,以至于我成为傻子...... – Weiby

回答

0

当您打算定义静态成员时,您意外定义了一个无关数组faceNames。你需要使用::符号来命名类的静态成员:

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

您可以在类之外定义它不指定大小。您不必再次指定大小。请注意0​​要求定义班级以外的成员。

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

Demo

+0

THX,也许有时我是一个富...... – Weiby

+0

你甚至可以删除类声明的尺寸规格也。 – zett42