如何解决在没有new的情况下在c ++中调用构造函数
这两行实际上都是正确的,但做的事情却略有不同。
第一行通过调用 format 的构造函数在堆栈上创建一个新对象Thing(const char*)
。
第二个有点复杂。它基本上执行以下操作
-
Thing
使用构造函数创建一个类型的对象Thing(const char*)
-
Thing
使用构造函数创建一个类型的对象Thing(const Thing&)
- 调用
~Thing()
在步骤 #1 中创建的对象
解决方法
我经常看到人们使用 C++ 创建对象
Thing myThing("asdf");
而不是这个:
Thing myThing = Thing("asdf");
这似乎有效(使用 gcc),至少只要不涉及模板。我现在的问题是,第一行是否正确,如果是,我应该使用它吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。