不懂这个函数

S_zxing 2009-05-01 09:59:08

template<class operandType>class DataType(
public:
union{char operate;operandType operand;};
Data(){}
DataType(const DataType &d){operand=d.operand;}
……
}

istream& operator>> (istream &is,DataType<operandType>&v>){
char ch;
is>>v.oprate;
ch=v.operate;
if(isdight(ch)){
is.putback(ch);is>>v.operand;
}
return is;
}//operate>>


想问的就是第二个函数是什么意思?
麻烦大家告知一二,谢谢……
...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun1987 2009-05-02
  • 打赏
  • 举报
回复
DataType(const DataType &d){operand=d.operand;}
是类的一个拷贝构造函数 可以别的已经生成的DataType类对象构造自己
操作符重载>>()函数
普通的类型如int string等 这个类型的操作符函数已经定义好 所以可以像这样使用
int a; cin>>a;
可以我们自身创造的类没有对操作符重载 当这样DataType data; cin>>data; 这样编译是不能通过的
当我们对操作符进行重载后 就可以cin>>data;
windsting 2009-05-01
  • 打赏
  • 举报
回复
不懂你的问题,

想问的就是“第二个函数”是什么意思? 指的是哪个函数?至少说一下函数名啊。
麻烦LZ告知一二,谢谢……

楼上很多人在讲解重载的操作符>>,可我觉得“第二个函数”值得应该是:
DataType(const DataType &d){operand=d.operand;}
它是这个类的设计者给出的一个拷贝构造函数,
是在这个类的对象以“传值”方式传递的时候发生的动作,
这就是我对“第二个函数”的解释,over。
lpf000 2009-05-01
  • 打赏
  • 举报
回复
操作符重载;
之后就可以这样调用:DataType<int> v;
cin>>v;//直接一次读取对象
  • 打赏
  • 举报
回复
istream& operator>> (istream &is,DataType<operandType>&v>){
char ch;
is>>v.oprate;
ch=v.operate;
if(isdight(ch)){
is.putback(ch);is>>v.operand;
}


重载>>这个流操作运算符。
具体的你得找书看了。
yuliyang 2009-05-01
  • 打赏
  • 举报
回复
http://www.stlchina.org/twiki/bin/view.pl/Main/STLIOStreamIntro
刚看了这片文章。。你也看看吧
nickyjay0501 2009-05-01
  • 打赏
  • 举报
回复
输入运算符重载
pengzhixi 2009-05-01
  • 打赏
  • 举报
回复
让你像int a;cin>>a;这样输入内置类型来输入你定义的 类型一样。像DataType<int>v; cin>>v;
lingyin55 2009-05-01
  • 打赏
  • 举报
回复
这是对>>操作符的重载啊,同普通成员函数一样,只不过他的名字包含关键字operator,以及紧跟其后的一个c++预定义的操作符。
楼主可以查查重载操作符的资料。
pengzhixi 2009-05-01
  • 打赏
  • 举报
回复
istream& operator>> (istream &is,DataType<operandType>&v>){
char ch;
is>>v.oprate;
ch=v.operate;
if(isdight(ch)){
is.putback(ch);is>>v.operand;
}
return is;
}

重载的 输入操作符。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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