0

来自http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/tutorial/tutdaytime3/src.html ,其中对类或成员方法声明之外的方法或类进行调用,前面是:

class tcp_connection
  : public boost::enable_shared_from_this<tcp_connection>



 tcp_connection(boost::asio::io_service& io_service)
    : socket_(io_service)


tcp_server(boost::asio::io_service& io_service)
    : acceptor_(io_service, tcp::endpoint(tcp::v4(), 13))
4

3 回答 3

1

在第一个示例中,冒号表示继承(在这种情况下,来自促进从 中创建共享指针的 boost 模板this

在最后两个示例中,冒号表示构造函数初始化列表的开始。

请务必阅读一本关于 C++ 的好书

于 2013-05-19T11:36:43.587 回答
0

这是继承:

class tcp_connection
  : public boost::enable_shared_from_this<tcp_connection>

这是一个构造函数初始化列表(调用socket_成员的构造函数):

 tcp_connection(boost::asio::io_service& io_service)
    : socket_(io_service)
于 2013-05-19T11:36:16.317 回答
0

您正在识别两种不同的事物。第一个是继承的例子。它声明tcp_connection公开继承自boost::enable_shared_from_this<tcp_connection>.

第二个和第三个是成员初始化列表的例子。一个成员初始化列表伴随着一个构造函数并允许它初始化它的成员。例如,在您的第二个示例中,通过传递给其构造函数socket_来初始化该成员。io_service

于 2013-05-19T11:36:42.140 回答