实际上我并不理解它的概念,这意味着应该采用它的原因和时间.通常,我们可以为类的实例赋值,但为什么我们应该将对象发送到另一个对象,如下所示:
private void button8_Click(object sender, EventArgs e)
{
rectangle r1 = new rectangle(50, 70);
rectangle r2 = new rectangle(r1);
}
class rectangle
{
private int length;
private int breadth;
public rectangle(rectangle x)
{
length = x.length;
breadth = x.breadth;
MessageBox.Show("I'm a Copy Constructor. \n Length= " + length.ToString() + "\n breadth= " + breadth.ToString());
}
}
最佳答案 复制构造函数是从C借用的概念:此构造函数的唯一目的是从现有对象创建副本.此外,如果程序员没有提供复制构造函数,编译器会自动在C中定义复制构造函数(隐式复制构造函数).您可以混合:对于具有特殊复制行为的类,您可以提供复制构造函数.对于其他类,如果类具有此类型的成员,则隐式复制构造函数会调用您自定义的类.
简介:C中的复制构造函数是一种复制对象及其成员的简单方法.诀窍在于您不必显式提供一个,并且在编译器级别受支持.
据我所知,C#中没有隐式的复制构造函数.您可以在C#中使用克隆,而不是这种特殊的构造函数.例如,见this question.
另一个注意事项:结构被复制在assigment上,但不是递归的.即便有no implicit copy constructor,它只是一个简单的记忆副本.
对于C拷贝构造函数,请参见section 12.8, page 288 in the C++14 standard.