【发布时间】:2013-03-09 18:25:46
【问题描述】:
我有一个名为Directory 的类,其中包含某些成员,后跟一个复制构造函数。
class Directory{
private:
char * Name;
int Telephone_Number;
char * Address;
public:
Directory (Directory & b)
{
Name = new char [10]; //Just assume that the name will not be greater than //10 characters
Address = new char [30]; //Same here
strcpy (Name, b.Name);
Telephone_Number = b.Telephone_Number;
strcpy (Address, b.Address);
}
};
我想知道我的复制构造函数是执行深复制还是浅复制。我知道这是深度复制Address 和Name 因为正在为它们分配新内存,但是Telephone_Number 呢?
我的代码是在做浅拷贝还是深拷贝?任何人都可以向我解释一般的复制构造函数吗?
【问题讨论】:
-
没有“拷贝拷贝构造函数”这样的东西
-
输入错误,抱歉。
-
但是问题变得更加奇怪了 :) “一般解释,具体解释”是什么意思?
-
在分配
new内存之前,不要忘记到deleteName和Address。 -
@MM。或者更确切地说,不要忘记将那些
char*转换为std::string并删除new运算符!
标签: c++ constructor copy-constructor