![]() |
1
2
因为其他人已经回答了关于如何调用“复制构造函数”的问题(即将另一个实例传递给构造函数:
在C++中,在将类型分配给另一个类型的实例时,会自动调用复制构造函数。在C#中,对象的一个浅拷贝被复制,这意味着值类型成员的值被复制,引用类型成员的引用被复制。
做 允许你自己写 user-defined conversion operators 允许在两种类型之间进行隐式(和显式)转换。这将有效地覆盖赋值运算符
例如,如果您想从
现在你可以这样做:
|
![]() |
2
7
这是因为您没有调用参数化构造函数。请看下面的代码:
功能
,返回null。这意味着您的代码正在使用默认的无参数构造函数。但是在
,则代码将提供参数,因此将调用构造函数,因此
|
![]() |
3
1
C++中没有C构造函数的原因与C++调用函数/方法时的语言有关。 C++继承了C背景,在传递参数到函数时更喜欢值(或复制)语义。 运行在垃圾收集环境之上的C#,除其他原因外,还将其参数作为引用传递。
对于如何调用它有非常不同的语义。C++将复制任何对象的副本。
类似的推理也适用于
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |