![](/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.