0

わかりましたので、私はC ++を初めて使用し、カードのデッキである単純なプログラムを作成しようとしています。しかし、「未解決の外部」というエラーが表示されます。コンストラクターでのインスタンス化と関係があると感じています。ざっと見ていただければ幸いです。

#include "Card.h"
#include "Deck.h"

Deck:: Deck()
{
  this -> currentCard=0;

  this -> index = 0;

    for(int i=0;i<4;i++)
    {
        for(int j =0; j < 13;j++)
       {
          deck[index].setVal(i);
      deck[index].setSuit (j);
          index++;
        }
    }
 }


void Deck::shuffle()
{
  //implementation
  }
Card Deck:: dealCard()
{
  //implementation
   }


int main (){}

私のヘッダーファイルは次のとおりです。

#include "Card.h"

class Deck
{
public:
Deck();
void shuffle();
Card dealCard();




private:
Card deck [52];
int currentCard;
int index;
};
4

3 に答える 3

0

通常、「未解決の外部」は未解決のシンボルを指します:

エラー LNK2001: 未解決の外部シンボル「解決されなかったシンボル」

これにより、リンカーに何が欠けているかがわかります。

これが役に立てば幸いです、ヤロン

于 2013-04-10T07:06:26.953 に答える
0

エラーは、未解決の外部シンボルがあることを意味します。

シンボルは、変数、クラス、メンバー関数のいずれでもかまいません。

それらが未解決の理由は、コード (または使用しているライブラリ) の一部がこれらのシンボルに依存している可能性があり、正しいライブラリをリンクしていないか実装していないために見つからないためです。

すべてのソース ファイルをコンパイルしてみて、シンボル (変数、クラス、メンバー関数など) が欠落していないことを確認してください。

于 2013-04-10T06:51:15.727 に答える
0

Cardクラスは宣言されていないようです。Card.hあなたはおそらくファイルでそれをしたいと思うでしょう。と入力するだけで前方宣言できますがclass Deck;、とにかくどこかで解決する必要がある単なるプレースホルダーであることを忘れないでください。

于 2013-04-10T06:57:25.327 に答える