我在C++中创建了一个带有重载运算符的矩阵类,我重载了运算符,<<(输出,使用ostream库),运算符+添加到矩阵,运算符=用于将一个矩阵分配给另一个矩阵.问题是,当我使用时
cout<<m1+m2<<endl;
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
E0349: No operator << matches these operands type are: std::ostream << Matrix
Run Code Online (Sandbox Code Playgroud)
但如果我做以下事情:
Matrix m = m1 + m2;
cout<<m<<endl;
Run Code Online (Sandbox Code Playgroud)
它完美无缺.这是<<运算符:
ostream& operator<< (ostream &os,const Matrix& m)
{
if (m.isValid())
{
os << '|';
for (int i = 0; i < m.getRows(); i++)
{
for (int j = 0; j < m.getCols(); j++)
{
os << m.getMatrix()[i][j];
if (j < m.getCols() - 1)
{
os << ',';
}
}
os << '|';
}
}
else
{
os …Run Code Online (Sandbox Code Playgroud) 当我发送 DNS 时,如何使用wireshark 知道我使用的是迭代方式还是递归方式?