|
|
1
3
在您的代码中, Y 是参考。您正在创建myClass M1(0),所以m1.y指向 暂时的 变量0。你只是 不能 做这个…我不知道你为什么 Y 成员是引用..???不管怎样,如果您希望这样做,请执行以下操作:
不管怎样,这很难看……而且很危险,如果你不知道自己在做什么……你真的应该有一个很好的理由这样做。 另外,重新设计类及其成员的名称。 所以,问题根本不在复制构造函数中。 |
|
|
2
3
问题不是复制,而是构造函数: myclass(int a):y(a)。 这里y是一个临时变量的引用,它消失了。 |
|
|
3
3
在第一个接受int的构造函数中,您正在引用一个临时局部变量。 |
|
4
2
我不喜欢你的密码。 其他的答案指出了为什么你得到垃圾价值。 更好的代码版本如下所示:
输出:
|
|
|
5
0
在您的代码中,混淆的步骤是行: M1,y=M1.x; 看起来y被赋予了x值,但这里没有。 实际上,您试图更改y所指变量的值。在代码中,引用的变量是一个局部临时变量,它在其作用域结束后不存在。 这就是为什么一旦控件转到copy ctor,您就会得到垃圾值。 |
|
AstralHex · 矩阵乘法代码工作不正常 9 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 9 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 9 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 9 月前 |