类构造函数混淆

Class Constructor Confusion

本文关键字:构造函数      更新时间:2023-10-16

我在头文件中有一个名为client的类,所有的声明和定义都在头文件中。现在我需要把这个类分成源和头,但是我对构造函数

有疑问。
class client{
  public:
    client(boost::asio::io_service& io_service)
    : stopped_(false),
    socket_(io_service),
    deadline_(io_service)
    {
          stream_buff = TPCircularBufferInit(stream_buff);
    }
 };

我如何在源文件上实现这个。如,

client::client(boost::asio::io_service& io_service){
? // what could be here
? // what could be here
}

该代码也可以写成:

class client{
    public:
        client(boost::asio::io_service& io_service);
};
client::client(boost::asio::io_service& io_service):
    stopped_(false),
    socket_(io_service),
    deadline_(io_service)
{
    stream_buff = TPCircularBufferInit(stream_buff);
}

"我如何在源文件上实现这个。"

使用与内联定义完全相同的语法:

class client{
  public:
    client(boost::asio::io_service& io_service);
 };
 client:client(boost::asio::io_service& io_service)
    : stopped_(false),
    socket_(io_service),
    deadline_(io_service)
    {
          stream_buff = TPCircularBufferInit(stream_buff);
    }