CPerson::CPerson(const CPerson& ob)//拷贝构造函数定义 { ID=ob.ID; Name=new char[strlen(ob.Name)+1]; strcpy(Name,ob.Name); Age=ob.Age; }
时间: 2023-12-03 13:46:42 浏览: 82
virtual类的构造函数存储空间分配[定义].pdf
这是一个类CPerson的拷贝构造函数的定义。拷贝构造函数用于在创建对象时,使用已存在的对象来初始化新创建的对象。它的参数是一个常量引用,表示要拷贝的对象。下面是函数的具体实现:
```
CPerson::CPerson(const CPerson& ob)
{
ID = ob.ID;
Name = new char[strlen(ob.Name) + 1];
strcpy(Name, ob.Name);
Age = ob.Age;
}
```
在这个函数中,首先将参数对象的ID赋值给新创建的对象的ID。然后,使用动态内存分配来为新对象的Name成员变量分配内存。这里使用了strlen()函数来计算字符串的长度,并且需要加1,以便为字符串末尾的空字符留出空间。接下来,使用strcpy()函数将参数对象的Name成员变量的值复制到新对象的Name成员变量中。最后,将参数对象的Age赋值给新对象的Age成员变量。这样,新对象就完成了从参数对象的拷贝。
阅读全文