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) 。

最後の 2 つの例では、コロンはコンストラクターの初期化リストの開始を示しています。

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

あなたは2つの異なるものを識別しています。最初は継承の例です。tcp_connectionからパブリックに継承すると述べていboost::enable_shared_from_this<tcp_connection>ます。

2 番目と 3 番目は、メンバー初期化リストの例です。メンバー初期化リストはコンストラクターに付随し、コンストラクターがそのメンバーを初期化できるようにします。たとえば、2番目の例では、コンストラクターsocket_に渡すことによってメンバーが初期化されています。io_service

于 2013-05-19T11:36:42.140 に答える