微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在没有new的情况下在c ++中调用构造函数

如何解决在没有new的情况下在c ++中调用构造函数

这两行实际上都是正确的,但做的事情却略有不同。

第一行通过调用 format 的构造函数在堆栈上创建一个新对象Thing(const char*)

第二个有点复杂。它基本上执行以下操作

  1. Thing使用构造函数创建一个类型的对象Thing(const char*)
  2. Thing使用构造函数创建一个类型的对象Thing(const Thing&)
  3. 调用~Thing()在步骤 #1 中创建的对象

解决方法

我经常看到人们使用 C++ 创建对象

Thing myThing("asdf");

而不是这个:

Thing myThing = Thing("asdf");

这似乎有效(使用 gcc),至少只要不涉及模板。我现在的问题是,第一行是否正确,如果是,我应该使用它吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。