【问题标题】:Does the implicitly defined copy constructor in C++ call copy constructor for members too right?C++ 中隐式定义的复制构造函数是否也为成员调用了复制构造函数?
【发布时间】:2011-06-23 02:25:23
【问题描述】:

只想仔细检查 C++ 类的默认(由编译器隐式定义)复制构造函数是否对每个成员变量执行复制构造函数,以及使用旧值来获取每个成员的复制值,而原子对象只使用一点拷贝(例如整数和浮点数)

【问题讨论】:

  • “默认构造函数”是一个技术构造,这使这个问题变得令人困惑,因为您实际上指的是 隐式定义的复制构造函数,而不是 default构造函数(用户或隐式定义。考虑将问题改写为:“隐式定义的复制构造函数会调用成员复制构造函数吗?”等。

标签: c++ copy-constructor default-constructor default-copy-constructor


【解决方案1】:

是的,这正是它的作用。

【讨论】:

    【解决方案2】:

    是的。 C++ 中的默认复制构造函数将对类型中的每个成员进行成员方式的复制初始化。

    至于对于int 和float 等原始类型的复制究竟是如何完成的,我无法确定。我的猜测是它是特定于实现的,但大多数编译器只是一点一点地复制。

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 2011-08-07
      • 1970-01-01
      • 2017-09-07
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      相关资源
      最近更新 更多