【发布时间】:2011-03-21 02:25:42
【问题描述】:
我正在尝试通过为矩阵类重载>>来学习运算符重载,以通过调用诸如
之类的东西来启用矩阵的基于键盘的输入Matrix M1;
cin >> M1;
下面给出了运算符重载部分
istream &operator>>(istream &in, Matrix &m)
{
for (int i = 0; i < m.dx; ++i) {
for (int j = 0; j < m.dy; ++j)
in >> m.p[i][j];
}
return in;
}
事实证明我的实现根本不正确。你能告诉我为什么这个实现是错误的吗?
我通过模仿现有的重载实现实现上述部分>>,这已被证明在矩阵输出部分可以正常工作,例如 cout
ostream &operator<<(ostream &out, const Matrix &m)
{
for (int i = 0; i < m.dx; ++i) {
for (int j = 0; j < m.dy; ++j)
out << m.p[i][j] << " ";
out << endl;
}
return out;
}
【问题讨论】:
-
@user:请比它不起作用更具体。究竟会发生什么,您期望会发生什么?你能举一个输入、预期输出和实际输出的例子吗?
标签: c++ class operator-overloading