以为我有课
class Man{
public:
int age;
int height;
}
然后在主
Man black_man;
black_man.age=20;
black_man.height = 180;
Man white_man = black_man;
所以这里的复制构造函数如何区分age
和height
并准确地复制。编译时,编译器是否为每个变量分配任何索引或前缀以唯一标识函数的 name mangling
之类的东西?这背后的机制究竟是什么?
最佳答案
根据我对 C++ 的理解,当依赖默认构造函数时,C++ 会创建浅拷贝。也就是说,行为是使用第一个成员作为参数在第二个成员上调用第一个成员(在数据结构指定的地址处找到)的默认复制构造函数。此外,每个数据结构的成员总是对齐相同的(也就是说,例如,一个结构布局是一个 float 然后一个 int,将保留前 4 个字节到 float,接下来的 4 个字节对于 int)。
作为引用,阅读这个; http://www.learncpp.com/cpp-tutorial/912-shallow-vs-deep-copying/
关于c++ - 如何通过拷贝构造函数区分一个类中的每个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25417957/