簡體   English   中英

錯誤:'board' 未在此范圍內聲明 (C++)

[英]Error: ‘board’ was not declared in this scope (C++)

我正在為棋盤游戲編寫代碼並嘗試對其進行測試。

我不知道如何解決這個給出消息的錯誤:

錯誤:'board' 未在此范圍內聲明”。

此消息出現在第 9 行。我非常感謝您的幫助。

#include <iostream>
#include "Board.h"

using namespace std;

int main()
{
    Board B;
    B.Player1(*board[15][15], B.pathP1[57]);
    B.printBoard();
}

void Board::Player1(char *board[15][15], char pathP1[57])
{ 

Board.h 在下面

#ifndef BOARD_H
#define BOARD_H

struct Board
{
  //Board board();
  char *board[15][15];
  char pathP1[57];
  
  void Player1(char *board[15][15], char pathP1[57]);
  void printBoard();
};
#endif //BOARD_H

所以你對對象的工作方式有誤解。 不需要將成員變量傳遞給成員函數,因為成員函數可以自動訪問成員變量。 這是面向對象編程的主要特征之一(至少在 C++ 中)。

像這樣重寫你的代碼

struct Board
{
  //Board board();
  char *board[15][15];
  char pathP1[57];
  
  void Player1();
  void printBoard();
};

int main()
{
    Board B;
    B.Player1();
    B.printBoard();
}

void Board::Player1()
{
    // do something with board and pathP1
    ...
}

此外,您需要修改數組和函數的工作方式。 雖然你不需要的傳遞boardpathP1陣列添加到Player1方法的方式,你試圖做它也是不正確的。

暫無
暫無

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

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