我的问题不是关于概念,而是关于这些词语的使用。
假设这种情况:
int *a=new int[3];
int *b=a; // It is called shallow copy
我的问题:把它称为浅拷贝是正确的吗?我看不到任何浅色的副本。 int*
是一个指针,它是关于存储一些地址的。因此,在前面的示例中,关于它的每件事都被完全复制,因为实际数据不是它的一部分。那么,为什么它被称为浅而不深?
为了进一步澄清,我觉得如果有人这样做了:
std::string file_path="C:/file.txt";
std::string another_path=file path;
并调用浅拷贝,因为文件没有真正复制。
BTW,是否在C ++标准中明确定义了深层/浅层词?