![](/img/trans.png)
[英]How can I access a private data member 2D array in other methods within the class?
[英]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.