다른 클래스에서 템플릿의 변수에 액세스

플로트 필

작성하려는 작은 게임 프로그램에 문제가 있습니다. 여러 유형의 게임에 보드를 사용할 수 있도록 "T"유형의 2D 배열을 보유하는 템플릿 클래스 "Board"를 만들었습니다. 문제는 게임 도중 배열 (T 보드 [SIZE] [SIZE])을 수정해야한다는 점입니다. 또 다른 클래스 "Othello"에는 두 개의 변수를 포함하는 구조체 인 "Tile"유형의 "Board"가 있습니다. "Player"(다른 클래스에 의해 정의 됨)는 어떤 플레이어가 타일을 제어하고 있는지를 나타내며 두 ​​개의 bool 변수 "black "및"white "는 두 플레이어가 이동할 수 있는지 여부를 나타냅니다. 따라서 이것은 기본적으로 다음과 같습니다.

판:

int SIZE = 8;
template<class T>
class Board {
public:
    // class functions
private:
    T board[SIZE][SIZE]
};

오델로 :

class Othello {
public:
    // class functions
private:
    // function helpers
struct Tile {
    Player current; // current tile holder (BLACK, WHITE, NEUTRAL)
    bool black; // can black capture?
    bool white; // can white capture?
    unsigned location; // number of the tile, counted from left to right
};

Board<Tile> othelloBoard; // board for the game

int bCounter; // counter for black units
int wCounter; // counter for white units

User playerOne; // information for first player
User playerTwo; // information for second player
};

문제는 "Othello"클래스를 통해 직접 "Board"를 수정할 수 없다는 것입니다 (Othello 클래스를 통해 보드에 액세스 할 수 없으므로 othelloBoard.board [x] [y] .current = WHITE; 예를 들어 작동하지 않음), 그러나 유형은 무엇이든 될 수 있기 때문에 "보드"내에서 수정 자 함수를 정의 할 수 없습니다. 나는 이것을 어떻게 할 것인지에 대해 머리를 감쌀 수 없습니다. 어쩌면 정말 간단한 것을 놓치고 있을지도 모릅니다. 이것은 학교 프로젝트가 아닙니다. 저는 첫 번째 C ++ 과정에서 이전 프로젝트를 다시 방문하고 직접 다시 빌드하려고합니다. 도움을 주셔서 감사합니다!

조키

문제는 이사회가 무엇입니까? 그리고 어떤 추상화를 제공합니까 (있는 경우)? 여기에 클래스 기능을 표시하지 않았으므로 지금은 표시하지 않습니다. 당신이 그것을 사용하려고 할 때 그것은 꽤 쓸모없는 것 같습니다. 어쨌든 매우 얕은 캡슐화를 사용하면 Tiles에 대한 접근자를 제공 할 수 있습니다.

template<class T, int SIZE = 8>
class Board {
public:
    T &tileAt(int x, int y) {
        assert(x>=0 && x < SIZE && y>=0 && y<SIZE);
        return board(x, y);
    }

    // class functions

private:
    T board[SIZE][SIZE]
};

(내가 SIZE를 템플릿 매개 변수로 옮겼으므로 향후 Tic-Tac-Toe 게임에서 크기를 변경하는 다른 버전의 템플릿을 인스턴스화 할 수 있습니다.)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 템플릿의 템플릿 매개 변수에 액세스

분류에서Dev

Java의 다른 클래스에서 변수에 액세스

분류에서Dev

C ++의 다른 클래스에서 템플릿 인수 설정

분류에서Dev

한 클래스에서 다른 클래스의 지역 변수에 액세스

분류에서Dev

다른 클래스에서 클래스의 멤버 변수에 액세스

분류에서Dev

다른 클래스의 클래스 메서드 / 변수에 액세스

분류에서Dev

C # 템플릿 클래스의 멤버 변수에 액세스

분류에서Dev

C ++의 다른 클래스에서 템플릿 클래스 사용

분류에서Dev

Vuejs : 다른 템플릿의 템플릿에서 데이터 목록에 액세스 할 수 없음

분류에서Dev

다른 PHP 파일의 클래스 함수에서 변수에 액세스

분류에서Dev

private void 함수 내에서 다른 클래스의 변수에 액세스 C #

분류에서Dev

다른 클래스 템플릿 내에서 클래스 템플릿 사용

분류에서Dev

다른 클래스에서 클래스 변수에 액세스

분류에서Dev

다른 클래스에서 클래스 변수에 액세스

분류에서Dev

PyQt5의 다른 클래스에서 변수에 액세스

분류에서Dev

Java의 다른 클래스에서 개인 변수에 액세스

분류에서Dev

다른 클래스의 개인 액세스 변수 데이터에 액세스

분류에서Dev

다른 클래스의 개인 액세스 변수 데이터에 액세스

분류에서Dev

보기에서 다른보기로 템플릿 참조 변수에 액세스

분류에서Dev

다른 PHP 파일의 클래스 변수에 액세스

분류에서Dev

C # 다른 클래스의 변수에 대한 앱 액세스?

분류에서Dev

다른 클래스의 매개 변수에 액세스

분류에서Dev

Python 3 다른 클래스의 변수 결과에 액세스

분류에서Dev

다른 클래스의 변수에 액세스하는 방법

분류에서Dev

신속하게 다른 클래스의 변수에 액세스

분류에서Dev

Android의 다른 클래스에서 메서드에 액세스

분류에서Dev

Android의 다른 클래스에서 UI에 액세스

분류에서Dev

다른 codeigniter에서 한 클래스의 개체에 액세스

분류에서Dev

Android의 다른 클래스에서 버튼에 액세스

Related 관련 기사

  1. 1

    다른 템플릿의 템플릿 매개 변수에 액세스

  2. 2

    Java의 다른 클래스에서 변수에 액세스

  3. 3

    C ++의 다른 클래스에서 템플릿 인수 설정

  4. 4

    한 클래스에서 다른 클래스의 지역 변수에 액세스

  5. 5

    다른 클래스에서 클래스의 멤버 변수에 액세스

  6. 6

    다른 클래스의 클래스 메서드 / 변수에 액세스

  7. 7

    C # 템플릿 클래스의 멤버 변수에 액세스

  8. 8

    C ++의 다른 클래스에서 템플릿 클래스 사용

  9. 9

    Vuejs : 다른 템플릿의 템플릿에서 데이터 목록에 액세스 할 수 없음

  10. 10

    다른 PHP 파일의 클래스 함수에서 변수에 액세스

  11. 11

    private void 함수 내에서 다른 클래스의 변수에 액세스 C #

  12. 12

    다른 클래스 템플릿 내에서 클래스 템플릿 사용

  13. 13

    다른 클래스에서 클래스 변수에 액세스

  14. 14

    다른 클래스에서 클래스 변수에 액세스

  15. 15

    PyQt5의 다른 클래스에서 변수에 액세스

  16. 16

    Java의 다른 클래스에서 개인 변수에 액세스

  17. 17

    다른 클래스의 개인 액세스 변수 데이터에 액세스

  18. 18

    다른 클래스의 개인 액세스 변수 데이터에 액세스

  19. 19

    보기에서 다른보기로 템플릿 참조 변수에 액세스

  20. 20

    다른 PHP 파일의 클래스 변수에 액세스

  21. 21

    C # 다른 클래스의 변수에 대한 앱 액세스?

  22. 22

    다른 클래스의 매개 변수에 액세스

  23. 23

    Python 3 다른 클래스의 변수 결과에 액세스

  24. 24

    다른 클래스의 변수에 액세스하는 방법

  25. 25

    신속하게 다른 클래스의 변수에 액세스

  26. 26

    Android의 다른 클래스에서 메서드에 액세스

  27. 27

    Android의 다른 클래스에서 UI에 액세스

  28. 28

    다른 codeigniter에서 한 클래스의 개체에 액세스

  29. 29

    Android의 다른 클래스에서 버튼에 액세스

뜨겁다태그

보관