如何通过复制构造函数区分类中的每个变量

How to differentiate each variable in a class by the copy constructor

本文关键字:变量 分类 何通过 复制 构造函数区      更新时间:2023-10-16

我想我有一个类

class Man{
public:
int age;
int height;
}

Then in main

 Man black_man;
 black_man.age=20;
 black_man.height = 180;
 Man white_man = black_man;

那么这里的复制构造函数如何区分ageheight并准确地复制。编译时,编译器分配任何索引或前缀到每个变量,以识别唯一的东西,如name mangling函数?简单地说,这背后的机制是什么?

从我对c++的理解来看,当依赖于默认构造函数时,c++创建浅拷贝。也就是说,行为是使用第一个成员作为参数,在第二个成员上调用第一个成员(在数据结构指定的地址中找到)的默认复制构造函数。此外,每个数据结构的成员始终保持相同的对齐方式(也就是说,例如,一个结构体首先是浮点型,然后是整型,它将为浮点型保留前4个字节,为整型保留后4个字节)。

参考,阅读这个;http://www.learncpp.com/cpp-tutorial/912-shallow-vs-deep-copying/