Dwuwymiarowa tablica jako pole klasy

0

main.cpp:

#include <iostream>
#include "class.hpp"

using namespace std;

int main()
{
    const int  game_width = 11;
    const int  game_height = 6;
    char       background = ' ';
    char       obstacle = 'X';
    char       border = '#';
    char       character = '^';

    game_board board(game_width, game_height, background, border, obstacle);
    char_line line(game_width, background, border, character);

    board.set_board();
    return 0;
}

class.cpp:

#include <iostream>
#include "class.hpp"

using namespace std;

game_board::game_board(int a, int b, char c, char d, char e) {
    width = a;
    height = b;
    bg = c;
    border = d;
    obst = e;
}

char_line::char_line(int a, char b, char c, char d){
    width = a;
    bg = b;
    border = c;
    sign = d;
}

class.hpp

#ifndef _CLASS_HPP_
#define _CLASS_HPP_

class game_board {
    public:
    int width;
    int height;
    char bg;
    char border;
    char obst;
    char game_array[height][width]; // <---------------- //

    void set_board();
    void logic_board();
    void draw_board();

    game_board(int width, int height, char bg, char border, char obst);
};

class char_line {
    public:
    int width;
    char bg;
    char border;
    char sign;

    void draw_char_line();
    void go_left();
    void go_right();

    char_line(int width, char bg, char border, char sign);
};

#endif // _CLASS_HPP_

Nie wiem czy to co tu stworzyłem ma jakikolwiek sens, ale czy dałoby się stworzyć tablicę game_array jako pole klasy game_board, o rozmiarach zależnych od innych pól danego obiektu (obiekt board) ?

0

Nie ma to jak mieć wszystkie składowe publiczne.

1

Na pewno nie jako C-tablicę. Prawdopodobnie najlepszym rozwiązaniem będzie zastosowanie wektora i widoku na tablice: https://dsp.krzaq.cc/post/98/prosty-widok-na-macierz-2d-w-cpp/

1 użytkowników online, w tym zalogowanych: 0, gości: 1