gpt4 book ai didi

c++ - 如何通过拷贝构造函数区分一个类中的每个变量

转载 作者:行者123 更新时间:2023-11-28 06:43:49 25 4
gpt4 key购买 nike

以为我有课

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

然后在主

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

Man white_man = black_man;

所以这里的复制构造函数如何区分ageheight并准确地复制。编译时,编译器是否为每个变量分配任何索引或前缀以唯一标识函数的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com