是否可以在构造函数的初始化列表中初始化新对象并引用它?

时间:2016-02-13 10:07:32

标签: c++ initialization

客户端是DLL的顶级类,因此我需要在其初始化中创建并传递新的Session对象,以创建请求者会话< / strong>应该分配给同一个Session。有可能吗?

PEP 0008 -- Style Guide for Python Code

1 个答案:

答案 0 :(得分:2)

初始化顺序取决于成员的声明顺序,但有点脆弱。如果您的示例中仍然如此,您只需执行

即可
class Client()
{
public:
    Client() : requestor(session) // session is implicitly default constructed
    {}
private:
    Session session;
    Requestor requestor;
};

注意:不清楚为什么要在构造函数中实例化本地Session对象。我认为这是一个错误。