将引用传递给类构造函数,“不提供初始化程序”

时间:2020-06-01 12:23:13

标签: c++

我试图将类引用传递给字段,但出现错误“'mazeGenerator :: maze'引用必须初始化”。

我尝试在类构造函数上方初始化“迷宫”。

为什么会这样?

class mazeGenerator {
public:
    Maze& maze;

    mazeGenerator(Maze& mazeObj) {
        maze=mazeObj;
    }
}


1 个答案:

答案 0 :(得分:1)

必须使用成员初始化程序列表初始化引用类型的数据成员,如下所示:

const

private数据成员也是如此。

请注意,将数据成员的声明放在构造函数上方实际上没有任何区别;也可以在下面声明。

此外,您的数据成员(无论是否为引用类型)都应为该类的lsblk /dev/sda sda 8:0 1 58.6G 0 disk └─sda1 8:1 1 58.6G 0 part /run/media/achille/1af1ba16-5f9a-44af-a481-9e8c63d278e1