新手提问:《C++ primer》中的一段代码看不懂

xjffj 2005-04-15 07:47:41
现在在看C++ primer,比国内的一些C++的书要详细多了,推荐看。
在第二章的练习2.15中给出了一个泛型类的定义如下,其中
explicit Example2(elemType val = 0):_val(val){}
中的冒号后的代码_val(val)是何意?为何能编译通过,很不明白。_val明明是一个变量,怎么能作为方法使用,难道是用于给_val初始化的?请高手指教,谢谢。

-----------------------------
#include <iostream>
using namespace std;

template <class elemType>
class Example2{
public:
explicit Example2(elemType val = 0):_val(val){}
bool min(elemType value) {return _value < value;}
void value(elemType new_val) {_val = new_val;}
void print(ostream& os) {os << _val;}
private:
elemType _val;
};

template<class elemType>
ostream& operator<<(ostream& os, const Example2<elemType>& ex){
ex.print(os);
return os;
}

int main(){
return 0;
}
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjffj 2005-04-15
  • 打赏
  • 举报
回复
看来猜对了,谢谢各位
kobefly 2005-04-15
  • 打赏
  • 举报
回复
楼主可能理解错了

是初始化列表
就是将类内的数据成员初始化

而不是什么方法调用
csxiabin 2005-04-15
  • 打赏
  • 举报
回复
只是初始化_val变量,是初始化列表,不是方法调用。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧