C++ 中隐式定义的复制构造函数是否有效?也为成员调用复制构造函数,对吗?
只是想仔细检查 C++ 类的默认(由编译器隐式定义)复制构造函数是否对每个成员变量执行复制构造函数,并使用旧值获取每个成员的复制值,而对于原子对象,仅使用位复制(例如整数和浮点数)
Just want to double check that the default (implicitly defined by compiler) copy constructor for C++ classes performs the copy constructor on each member variable as well using the old value to get the copied value for each member and for atomic objects just uses a bit copy (e.g. ints and floats)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这正是它的作用。
Yes, that is exactly what it does.
是的。 C++ 中的默认复制构造函数将为类型中的每个成员进行逐成员复制初始化。
至于原始类型(例如 int 和 float )的复制究竟是如何完成的,我不能肯定地说。我的猜测是它是特定于实现的,但大多数编译器只是进行一点一点的复制。
Yes. The default copy constructor in C++ will be member-wise copy initialization for every member in the type.
As to how exactly the copy is done for primitive types such as
int
andfloat
I cannot say for certain. My guess is it's implementation specific but most compilers just do a bit by bit copy.