簡體   English   中英

如何在另一個類中更新一個類的2D數組成員?

[英]How can i update a 2D array member of one class inside another class?

我有一個名為Renderer的類,它有一個名為imageList的圖像對象數組和一個名為canvas的2D 80 x 80數組。 每個圖像對象都有一個名為shapesList的形狀對象數組。 形狀可以是直線,四邊形,三角形或圓形。

我想在一個名為draw的函數中的渲染器類中更新2D畫布數組,該函數位於Line類中。

我嘗試使用setter和getter for canvas從Line類中訪問它,但它似乎不起作用。 也許我可以通過它的參考? 任何幫助?

class Renderer {

private:
    char **canvas;
    Image **imageList;



//this is the constructor for Renderer
Renderer(){

//allocating mem for canvas
canvas = new char*[80];//height
for (int i = 0; i < 80; ++i) {
    canvas[i] = new char[80]; //width

}

您當前的實現看起來沒問題,但通常如果您直接處理char ,您可能希望將canvas作為單個char*

private:
  char canvas[80*80];

這也將確保在堆棧而不是堆上分配內存(除非您需要它在大小上是動態的)。

然后你可以寫一個getter並設置如下:

char get(int row, int col) {
  return canvas[row * 80 + col];
}

char set(int row, int col, char val) {
  canvas[row * 80 + col] = val;
}

暫無
暫無

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

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