c – 使用“X x(42)”和“X x = 42”的对象构造的差异?

c – 使用“X x(42)”和“X x = 42”的对象构造的差异?,第1张

概述假设我们有定义构造函数X(int值)的类X. 这在语义上是否相同? X x = 42;X x(42); 我相信只有当我们将显式关键字添加到X的构造函数时才会出现差异. 否则编译器将减少表达式X x = 42;到X x(42); 如果我错了,请纠正我. 表格 X x = 42; 要求构造函数是非显式的,并且存在可访问的复制构造函数.允许实现构造一个临时的并复制它,但我知道没有实现. 假设我们有定义构造函数X(int值)的类X.

这在语义上是否相同?

X x = 42;X x(42);

我相信只有当我们将显式关键字添加到X的构造函数时才会出现差异.
否则编译器将减少表达式X x = 42;到X x(42);

如果我错了,请纠正我.

解决方法 表格
X x = 42;

要求构造函数是非显式的,并且存在可访问的复制构造函数.允许实现构造一个临时的并复制它,但我知道没有实现.

总结

以上是内存溢出为你收集整理的c – 使用“X x(42)”和“X x = 42”的对象构造的差异?全部内容,希望文章能够帮你解决c – 使用“X x(42)”和“X x = 42”的对象构造的差异?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1241450.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存