在类中编写struct

时间:2017-02-18 22:35:05

标签: c++ struct

这是关于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指针。

2 个答案:

答案 0 :(得分:0)

  

如何访问struct

的私有成员

结构体没有私有成员,其所有成员都是公共成员,因为结构体的默认访问权限是公共的。

  

我是否需要删除input_image指针

是的,您需要delete input_image因为它指向new内存。

答案 1 :(得分:0)

结构的成员不是私有的,而是结构本身的定义。

由于成员不是私有的(除非另有说明,否则结构的成员是公共的),您可以在已知struct properties的任何位置访问它们,在这种情况下仅在类Camere内。 在课程Camere之外,struct properties未知且无法访问。请注意,这不是因为任何"私人"成员(非私人),但由于struct properties的定义未公开。