2014-04-15 30 views
-2

我正在编写扑克游戏的代码,但我有问题找出一种方法来传递类对象的值..在这种情况下类卡..对象卡组。 。我想这样做是为了模拟向玩家交付5张牌。我创建了另一个类型为card1的对象,所以在创建套牌后,然后洗牌。我想从对象中抽取5张牌甲板......并将其传递给对象player1 ..通过引用传递值,但仍显示地址不是值

但是,当我打印屏幕上看到值是否通过我只获取单元格的地址..不是值。 下面是代码

code for class deck 

[代码]

class Card 
     { 
     public: 
      int face; 
      int suit; 

      void toString() { 
       cout<<FaceString[face]<<" of "<<SuitString[suit]<<endl; 
      } 

     }; 

[/代码]

code for class of deal 

[代码]

class deal 
     { 
     public: 
     Card deck[52]; 

      void toDisplay(){ 
       for (int j = 0; j < 5; j++) { 
       cout<<"player card "; deck[j].toString(); 
       } 
      } 
     }; 

[\代码]

[代码]

//creation of both objects 
      Card deck[52]; 
      Card player1[5]; 

[/代码}

in main 


player1.deck; <<==[Error] request for member 'deck' in 'player1', which is of non-class type 'deal [5]' 
+1

您已经错过了一个星号。投票结束为错字。 – dasblinkenlight

+0

@ dasblinkenlight ..谢谢..我知道这将是简单的... – Darius

回答

4

你有错误的函数签名:

这是你的原型

void deal(const int wDeck[][13], const char *wFace[], 
      const char *wSuit[]); 

这是你的函数implementatiion

void deal(const int wDeck[][13], const char *wFace[], 
       const char wSuit[] ) 
{ 
    // blah blah 
} 

你错过了一个*

+0

谢谢tay2510 ..感谢您的快速反应..我真的很感激它... – Darius

0

的原型不匹配函数定义,试试这个:

void shuffle(int wDeck[][13]); 
void deal(const int wDeck[][13], const char *wFace[], const char* wSuit[]); 

void shuffle(int wDeck[][13]) 
{ 
    int row; 
    int column; 
    int card; 

    for (card = 1; card <= 52; card++){ 
     do{ 
      row = rand() % 4; 
      column = rand() % 13; 
     } while (wDeck[row][column] != 0); 

     wDeck[row][column] = card; 
    } 
} 

void deal(const int wDeck[][13], const char *wFace[], const char* wSuit[]) 
{ 
    int card; 
    int row; 
    int column; 

    for (card = 1; card <= 52; card++){ 

     for (row = 0; row <= 3; row++){ 

      for (column = 0; column <= 12; column++){ 
       if (wDeck[row][column] == card){ 
        printf("%5s of %-8s%c", wFace[column], wSuit[row], 
         card % 2 == 0 ? '\n' : '\t'); 

       } 
      } 
     } 

    } 
} 
+0

谢谢..哇详细这样一个小东西可以很容易错过。你们很快回答..我告诉你我爱这个网站..我不再检查其他博客网站..你们摇滚!!! – Darius