我想为矩阵设置一些重载运算符函数,我使用构造函数动态分配它们,并设置值的istream运算符。在尝试乘以两个矩阵时(运行时错误),我遇到了一个问题。运算符重载:多重矩阵
任何帮助,将不胜感激。 ps:我不熟悉模板。
这里是我的*运算符功能:
matrixType operator*(matrixType m)
{
if(Rows==m.Cols && Cols==m.Rows)
{
matrixType m3(Rows,m.Cols);
for(int i=0; i<Rows;i++)
{
for(int j=0; j<Cols; j++)
{
{
for(int g=0; g<Cols;g++)
m3.matrix[i][j]+=matrix[i][g] * m.matrix[g][j];
}
}
}
return m3;
}
}
,这里是我的副本操作功能:
matrixType& operator=(matrixType& m)
{
for (int i =0; i<Rows; i++)
{
for (int j=0; j<Cols; j++)
matrix[i][j]=m.matrix[i][j];
}
return *this;
}
你不提任何有关错误的详细信息,但最常见的问题是没有按照“三治”(谷歌它)当你动态分配的成员。尽管使用'std :: vector'更好,因为它可以让你遵循“零规则”。 – molbdnilo
你好,欢迎来到StackOverflow。请花一些时间阅读帮助页面,尤其是名为[“我可以询问什么主题?”(http://stackoverflow.com/help/on-topic)和[“我应该问什么类型的问题避免问?“](http://stackoverflow.com/help/dont-ask)。更重要的是,请阅读[Stack Overflow问题清单](http://meta.stackexchange.com/q/156810/204922)。您可能还想了解[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 –