类构造函数内部结构

时间:2015-05-24 05:22:21

标签: c++

如何在具有类构造函数

的结构中初始化类

假设我的班级可以初始化为client c_3(io_service_2);

现在我在struct

中初始化相同的方式
struct a{
    boost::asio::io_service io_service_2;
    client c_3(io_service_2);
};

我收到的错误如

error: C2061: syntax error : identifier 'io_service_2'

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果您打算默认初始化io_service_2成员,然后使用它来初始化c_3,而这两个都是成员,那么需要成员初始化列表

struct a
{
    boost::asio::io_service io_service_2;
    client c_3;

    a() : io_service_2(), c_3(io_service_2) {}
};

注意类中成员变量声明的顺序是最重要的,因为它规定了成员初始化的顺序,而不管实际成员初始化列表中的顺序是

祝你好运。