c++ - 在构造函数中初始化结构实例数据成员?

标签 c++ class struct initialization

我有一个 C++ 类,它作为私有(private)数据成员定义了一个结构:

Class example {

...

private:
   struct Impl;
   Impl& structure_;
};

假设结构体Impl定义如下:

struct example::Impl{
    int m1;
    int m2;
    int m3;
};

我如何才能在类的构造函数中初始化结构实例 ( structure_ )?

现在我有:

example::example() :
     structure_ .m1(00),
     structure_ .m2(00),
     structure_ .m3(00) {
...
}

.. 用于初始化列表,但我收到此错误:

'example::structure_' : must be initialized in constructor base/member initializer list

我该如何解决这个问题?

谢谢

最佳答案

Impl 是一个引用,因此您需要使用实际的 Impl 对象对其进行初始化,然后才能使用它。

关于c++ - 在构造函数中初始化结构实例数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6215772/

相关文章:

MicroVision 5.13 和 ARMCC 5.05 上的 C++11

c++ - 为实例变量(即对象)调用 getter 函数时实际发生了什么?

c++ - 推回 map 容器

objective-c - 从 json 数据填充类

c# - 使用自定义类列表

c - 指向结构内部结构的指针;如何访问不出错?

c++ - 获取指针的地址

c++ - 如何使用 C++ 中的友元函数将成员变量从一个类访问到另一个类?

c - 使用 malloc 和不使用 malloc 创建结构体的区别

c - 有没有办法将常量结构体浅复制为非常量结构体?