碰到网友问一个问题:如何重载以后达到matrix<<1,2,3,4,5...这样的输入效果?
很当然就想到了重载运算符<<,并且逗号也是需要重载的,我们写出以下代码:
struct matrix
{
int data[9];
int index;
};
matrix& operator<<(matrix& ms,int data)
{
ms.data[ms.index++] = data;
return ms;
}
matrix& operator,(matrix& ms,int data)
{
ms.data[ms.index++] = data;
return ms;
}
int _tmain(int argc, _TCHAR* argv[])
{
matrix ms;
ms.index = 0;
ms<<1,2,3,4,5,6,7,8,9;
return 0;
}
注意重载的运算符应该返回matrix的引用。