代码之家  ›  专栏  ›  技术社区  ›  M.Hamra

如何在另一个类中更新一个类的二维数组成员?

c++
  •  0
  • M.Hamra  · 技术社区  · 5 年前

    我有一个名为Renderer的类,它有一个名为imageList的图像对象数组和一个名为canvas的2d80x80数组。每个图像对象都有一个称为shapesList的形状对象数组。形状可以是直线、四边形、三角形或圆形。

    我想从一个名为draw的函数中的renderer类更新2dcanvas数组,该函数位于Line类中。

    我尝试为canvas创建一个setter和getter,以便从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
    
    }
    
    1 回复  |  直到 5 年前
        1
  •  0
  •   iHowell    5 年前

    您当前的实现看起来很好,但是通常如果您直接处理 char 的,你可能想 canvas 单身汉 char* 使用:

    private:
      char canvas[80*80];
    

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