初始化列表,该怎么解决

初始化列表
foo(string x, string y):xval(x),yval(y){}

foo(string x, string y)
{
  xval(x); 
  yval(y);
}
等价吗


------解决方案--------------------
1.两种方法不等价
理由如下:
未被显示初始化的成员调用默认构造函数初始化,也就是说第二种方法xval和yval在构造函数内部初始化之前已经调用默认构造函数初始化了,所以方法一更高效.
另外const成员和引用必须在初始化列表中初始化
2.第二种写法也可以,babyvox1999 可以参阅下标准库string类


------解决方案--------------------
楼主啊,你代码都不编译一下就跑过来混,这个不好吧。