我不是C ++方面的专家,但这真的吓坏了我...... 我正在研究3D矩阵(>>),并编写过度充电的运算符以使用push_back对其进行操作。
当我在第一个和第二个维度上添加内容时,它运行正常 例如:
建筑和安培; Construction :: operator - =(const Construction& c) .....
... contenu [level] .push_back(c.contenu [level] [depth]); ......没问题!
但是当我创建另一个操作符+ =来操纵最后一个维度时,地狱就会松动
建筑和安培; Construction :: operator + =(const Construction& c) ......
... contenu [level] [depth] .push_back(c.contenu [level] [depth] [width]);
由于一些无法解释的原因,现在,push_back修改了它的参数c.contenu !!! ???它不应该这样做,更不用说const&参数。
由于该指令处于一个循环中,直到它到达c.contenu的末尾,它实际上永远不会,并且永远不会停止。
这就是导致问题的那条线,因为我在指令之前和之后检查了c.contenu,并以某种方式改变了。
我剥了眼睛,两个指令都很相似,我实际上复制了第一个并修改了它,并且没有错字或任何根本不同的东西。
有什么想法吗?
PS:这是我在这里的第一篇文章,很抱歉,如果我不够清楚,但我很感激帮助。