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

标签 c++ compilation

以为我有课

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/

相关文章:

c++ - 如何在链表中搜索结构对象

c++ - 使用 UHD 时 Visual Studio 2013 中无法解析的外部符号

python - 在c++中嵌入python时导入tensorflow返回null

c++ - 在 Windows 中为 Linux on Intel 编译 C++ 库

java - 从 Java 程序编译 C 程序

linux - Linux 资源文件放在哪里?

c++ - 如何创建大地形/景观

c - 无法编译 super 简单的代码

c - 16 岁代码中的 "error: initializer element is not constant"

C++ 使用 std::enable_if 创建最多 10 个参数的 std::tuple 特化