c++ - 在复制构造函数中创建临时对象

标签 c++

我正在阅读 C++ 中的复制构造函数

有人提到,使用按值调用传递对象并按值返回构造一个用户永远看不到的临时对象。我的理解是,例如当我们通过 val 调用时

myclass b;

void myfunc(myclass c) {}  //c(b) copy constructor is called.

在哪里创建临时对象?

谢谢!

最佳答案

拷贝是在 myfunc() 的函数范围内创建的。也就是说,c 在整个函数的范围内,包括(并且略大于)函数体。当函数返回时,即在 myfunc(b); 的分号处销毁拷贝。

关于c++ - 在复制构造函数中创建临时对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7555195/

相关文章:

c++ - boost::bind 和对临时变量的引用

c++ - 将派生类存储到 vector C++

c++ - [expr.ref]/1 中提到的脚注到底是什么意思?

c++ - ~0 是做什么的?

c++ - 调用祖 parent 构造函数的虚拟但不是多重继承

c++ - VS2010中的常量问题

c++ - 如何使用 openGL 获得真正平滑的移动物体

c++ - 如何在linux上使用mingw编译glog生成glog dll

c++ - 在发生 bad_alloc 异常时从 std 容器中释放内存的策略

c++ - C 风格字符串和 c++ std::string 的函数