代码之家  ›  专栏  ›  技术社区  ›  purecobalt

表达式必须具有类类型,但其类型为“*shape”

  •  0
  • purecobalt  · 技术社区  · 2 年前

    我试图创建一个向量,如下所示:

    std::vector<double> dimensions_data_vec{input_shape_pointer.get_dimensions()};
    

    在这段代码中,input_shape_pointer是指向矩形等形状的指针。形状有与其相关的尺寸,如长度和宽度。我现在必须创建另一个单独的类,它使用指向形状的指针并访问其维度。为此,我使用了代码片段。

    get_dimensions()函数是shape类的一部分,它返回具有double类型的向量中形状的维度。

    我的代码发出错误“表达式必须有类类型,但它有类型“*shape”(请注意此处的星号)”。我的问题是,在向量初始化之前,我如何在形状上获得_维的工作,这样就没有不匹配,并且尺寸_数据_vec只接受形状维的向量的两倍?我认为用另一个向量初始化一个向量可能会有问题,但我想一次解决一个问题。

    任何帮助都将不胜感激!

    1 回复  |  直到 2 年前
        1
  •  0
  •   Anoop Rana    2 年前

    如果 input_shape_pointer 是指向 shape 然后使用 -> 而不是 . .例如,表达式 input_shape_pointer.get_dimensions() 应替换为:

    input_shape_pointer->get_dimensions()
    

    注意使用 -> 而不是 . 在上面的表达式中