这是关于C ++的一般性问题。我正在尝试创建一个Camera类,它将包含包含各种相机属性的私有成员结构。
Class Camere
{
public:
int read_input_image(properties &c, const char *file_name);
private:
struct properties
{
double* input_image;
double* output_image;
----
----
}
}
属性c; }
.cpp文件
int Camera :: read_input_image(properties &c, const char *file_name) {
if(c.input_image == 0) {
c.input_image = new uint8_image_t;
c.input_image->data = 0;
}
现在, 1.我的问题是如何访问struct的私有成员, 如果我想编写一个访问struct成员的函数。 2.另一个问题是如何删除与类内部struct相关的指针,是否需要删除input_image指针。
答案 0 :(得分:0)
如何访问struct
的私有成员
结构体没有私有成员,其所有成员都是公共成员,因为结构体的默认访问权限是公共的。
我是否需要删除input_image指针
是的,您需要delete input_image
因为它指向new
内存。
答案 1 :(得分:0)
结构的成员不是私有的,而是结构本身的定义。
由于成员不是私有的(除非另有说明,否则结构的成员是公共的),您可以在已知struct properties
的任何位置访问它们,在这种情况下仅在类Camere
内。
在课程Camere
之外,struct properties
未知且无法访问。请注意,这不是因为任何"私人"成员(非私人),但由于struct properties
的定义未公开。