|
Boost Users : |
Subject: Re: [Boost-users] boost::asio socket as class member
From: The Novice Coder (boost_at_[hidden])
Date: 2010-11-17 20:36:17
Claude wrote:
> Hi!
>
> I want to put a boost::asio::ip::tcp::socket as a private member of my class
> and then create the object in one of the class methods.
>
> I actually use this code:
>
> class myClass{
>
> private:
> boost::asio::io_service io_service;
> boost::asio::ip::tcp::socket s;
> };
>
>
>
> But this code don't work (don't compile). Why?
>
Wow, one I can answer..
Anyways, I suspect the compile error you're getting is "No default
constructor available". The problem is just that, Socket doesn't have
an "empty" constructor.
The Socket constructor needs an boost::asio::io_service object to work.
You can fix your code by adding a constructor that does the
initialization, like so:
class myClass{
public:
myClass() : s(io_service) {}
private:
boost::asio::io_service io_service;
boost::asio::ip::tcp::socket s;
};
Hope that helps!
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net