c++ - C++ 构造函数中的混淆

标签 c++ class oop object constructor

#include <iostream>
using namespace std;

class Obj {
public:
    Obj(){cout <<"create obj" << endl;}
    Obj(const Obj& other){cout<<"copy create obj"<<endl;}
    ~Obj(){cout<<"destructed obj"<<endl;}
};

int main() {
    Obj(Obj((Obj())));
    cout<<"---- exit main ----"<<endl;
}

我不知道为什么这个程序只打印出 1 create obj 和 1 destructed obj。帮助。

最佳答案

因为复制省略。了解更多信息 here .您的编译器明白,它可以避免复制对象,而只创建一个对象。

关于c++ - C++ 构造函数中的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843171/

相关文章:

javascript - JQUERY 和 JAVASCRIPT OOP

c++ - 如何从模板类返回派生类型

c++ - 如何使用基于数组的二进制堆访问最小元素?

c++ - 'gcc -g'和'gcc -g3'有什么区别?

java - 当 Java 类是 Serializable 的实例时

jquery - 使用 jQuery 在悬停时显示隐藏类

c++ - 安全回调设计

HTML li class=youarehere 不工作

java - 在 java 类的 main 方法中按名称访问和填充数组(通过成员函数创建)

PHP 使用对象而不是数组