表达式必须具有 class 类型,但它具有类型“*shape”

Expression must have class type but it has type "*shape"

我正在尝试创建一个矢量,如下所示:

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

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

get_dimensions() 函数是形状 class 的一部分,returns 是向量中形状的维数,其类型为 double.

我的代码出现错误

Expression must have class type but it has type "*shape" (please note the asterisk here)

我的问题是,如何让 get_dimensions() 在矢量初始化之前对形状进行处理,以便不存在不匹配,并且 dimensions_data_vec 只接受双倍形状尺寸的矢量?我认为用另一个向量初始化一个向量可能会有问题,但我想一次解决一个问题。

如果 input_shape_pointer 是指向 shape 指针 ,则使用 -> 而不是 .。例如,表达式

input_shape_pointer.get_dimensions()

应替换为:

input_shape_pointer->get_dimensions()

注意在上面的表达式

中使用->而不是.