调用不带 new 关键字的构造函数
Call to constructors without the new keyword
我遇到了这个问题,其中成员函数 none() 在没有 new 运算符的情况下调用构造函数。https://github.com/3rdparty/stout/blob/master/include/stout/result.hpp
但是我不明白,如果不使用 new 关键字,如何分配内存?另外,返回对象的类型是什么?
如果不复制您担心的确切行,我可能会偏离目标,但是如果您担心的是这样的代码:
T f() {
return T();
}
这不是对构造函数的调用,而是创建一个临时的,在这种情况下是值初始化的。内存在堆栈中本地分配(如果有,返回值优化应避免它)。
相关文章:
- 应用于运算符而不是构造函数的显式关键字
- 如何通过 boost::p ython 重命名构造函数的关键字参数
- 在 new 关键字中,由默认构造函数初始化的类中的元素是否也使用 new 关键字在C++?
- 带有 "this" 关键字的 Java Copy 构造函数
- 为什么带有 const 关键字的构造函数可以工作,而没有它就不能工作?
- 当没有显式关键字与单参数构造函数一起使用时,编译器可以发出警告
- 使用 "using" 关键字继承基类的复制和移动构造函数
- 在构造函数中使用关键字 "this" 时定义复制构造函数
- 使用关键字继承构造函数时出乎意料的行为
- 显式关键字,移动构造函数和复制构造函数,并禁用移动和复制构造函数
- 构造函数使用多个参数时所需的显式关键字
- 构造函数显式关键字的使用
- 在结构构造函数中使用"this"关键字编译错误?-C++
- 模板类的构造函数在使用 new 关键字时调用类型构造函数
- 对单参数构造函数使用显式关键字
- 'explicit' g ++ 中的关键字对简单构造函数(不是复制/赋值构造函数)没有影响?
- 构造函数名称之前的关键字结构
- 为什么双参数构造函数以显式关键字开头
- 在std::auto_ptr的构造函数中使用' explicit '关键字有什么原因吗?
- 构造函数定义是否可以以 "class" 关键字为前缀?