您的位置:首页 > 编程语言 > C语言/C++

Operator Overloading part 2(Chapter 12 of Thinking in C++)

2010-11-27 14:20 295 查看
1 #include <iostream>
2 #include <sstream>
3 #include <cstring>
4 using namespace std;
5
6 class IntArray
7 {
8 enum { sz = 5 };
9 int i[sz];
public:
IntArray()
{
memset(i, 0, sz * sizeof(*i));
}
int& operator[](int x)
{
return i[x];
}
friend ostream& operator<<(ostream& os, const IntArray& ia);
friend istream& operator>>(istream& is, IntArray& ia);
};

ostream& operator<<(ostream& os, const IntArray& ia)
{
for(int j=0; j<ia.sz; j++)
{
os << ia.i[j];
if(j != ia.sz - 1)
{
os << ", ";
}
}
os << endl;
return os;
}

istream& operator>>(istream& is, IntArray& ia)
{
for(int j=0; j<ia.sz; j++)
{
is >> ia.i[j];
}

return is;
}

int main()
{
stringstream input("47 34 56 92 103");
IntArray I;
input >> I;
I[4] = -1;
cout << I;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: