【发布时间】:2015-12-30 08:10:26
【问题描述】:
我有一个 C++ 类 c_image,它包含一个指向类 c_pixel 元素的指针向量:
class c_image {
public:
vector<shared_ptr<c_pixel>> pixel;
...
};
类 c_pixel 元素包含一个 double 类型的元素 Z:
class c_pixel {
public:
double Z;
...
};
但是,它们使用类 c_pixel_pv 进行了扩展,其中包含 pv,一个由三个 double 类型元素组成的数组:
class c_pixel_pv : public c_pixel {
public:
double pv[3];
...
};
类c_image也有一个函数filter
vector<double> c_image::filter(???) {
...
};
它将把指向元素Z或pv[0]或pv[1]或pv的指针作为输入[2]。
但我不知道如何指向这些元素。例如,我什至不知道是否可以仅指向 pv[0] 元素。我不知道如何从这个问题开始。有人可以帮帮我吗?
【问题讨论】:
-
如果它是 z 或 pv[0] 或...,函数的行为会有所不同吗?
-
不就是
double*吗?毕竟Z或pv[..]都是双打! -
你不能有一个“成员指针”可以指向“可能在成员内部,也可能不在”(注意
pv[0]不是c_pixel_pv的成员,只有pv是)。不过,您的问题引发了许多其他问题,例如:为什么要共享像素?共享这些像素的图像是什么?图像是否可以包含c_pixel和c_pixel_pv的混合体? -
@HumamHelfawi 不,完全一样
-
@molbdnilo 这是一个复杂的类结构,但如果你了解整个问题,这是必要的。