大家来帮看上,这个单冒号是什么功能

大家来帮看下,这个单冒号是什么功能
Boost ASIO的异步例程中:
请问
CHelloWorld_Service(io_service &iosev)
:m_iosev(iosev),m_acceptor(iosev, tcp::endpoint(tcp::v4(), 1000))
{}

这个是构造函数吧,
可是为什么CHelloWorld_Service(io_service &iosev)后面还带了一个冒号,这个冒号是什么用的呢?后面的m_iosev和m_acceptor又是干嘛的呢?以前没有见过啊。谢谢啦
struct CHelloWorld_Service
{
CHelloWorld_Service(io_service &iosev)
:m_iosev(iosev),m_acceptor(iosev, tcp::endpoint(tcp::v4(), 1000))
{}

void start()
{
// 开始等待连接(非阻塞)
boost::shared_ptr<tcp::socket> psocket(new tcp::socket(m_iosev));
// 触发的事件只有error_code参数,所以用boost::bind把socket绑定进去
m_acceptor.async_accept(*psocket,
boost::bind(&CHelloWorld_Service::accept_handler, this, psocket, _1));
}

// 有客户端连接时accept_handler触发
void accept_handler(boost::shared_ptr<tcp::socket> psocket, error_code ec)
{
if(ec) return;
// 继续等待连接
start();
// 显示远程IP
std::cout << psocket->remote_endpoint().address() << std::endl;
// 发送信息(非阻塞)
boost::shared_ptr<std::string> pstr(new std::string("hello async world!"));
psocket->async_write_some(buffer(*pstr),
boost::bind(&CHelloWorld_Service::write_handler, this, pstr, _1, _2));
}

// 异步写操作完成后write_handler触发
void write_handler(boost::shared_ptr<std::string> pstr, error_code ec,
size_t bytes_transferred)
{
if(ec)
std::cout<< "发送失败!" << std::endl;
else
std::cout<< *pstr << " 已发送" << std::endl;
}

private:
io_service &m_iosev;
ip::tcp::acceptor m_acceptor;
};

boost struct

------解决方案--------------------
额,是成员初始化列表吧
------解决方案--------------------
成员初始化列表,这种初始化要比在函数体中初始化效率高
------解决方案--------------------
这个就是对数据成员的另一种进行初始化的方式,即初始化列表。
在使用上要有个地方值得你去注意:
假设我在.h文件中有三个成员变量分别是:int age; long number;  string address;

我们在用初始化列表的时候切记一定要和.h文件中成员变量的顺序一致,也就是在初始化列表中的顺序依次是:
Student(int a,long num,string addr):age(a),number(num),address(addr){}
否则会有错误。
------解决方案--------------------
成员初始化列表,说是可以提高构造函数的效率。
CAmoyman():m_Data(1)
{
}
比下面这个的效率要高。
CAmoyman()
{
    m_Data = 1;
}

只能出现在构造函数
------解决方案--------------------
冒号是构造对象的时候初始化成员用的,如果不通过冒号的在构造函数体内那种初始化其实是推成员做初始赋值操作。也就是说通过冒号初始化相当定义变量同时初始化 : int a = 2;
如果是不通过冒号,而在函数体内初始化相当于先定义变量然后赋值: int a;  a = 2;
------解决方案--------------------
就是初始化成员列表。

参考:
类成员变量初始化列表(Member Initialization List)