2020-06-07 c++创建对象带括号和不带括号的区别 123456class Test{public: Test() {} Test(int a) {}} 1、栈上创建对象1.1 无括号 1Test a; // 调用默认构造函数,栈上分配内存创建对象 1.2 有括号 12//无任何意义,声明一个返回值为Test,参数为空,名字叫做a的函数Test a(); 1.3 有括号+参数 12//调用构造函数Test(int a),栈上分配内存创建对象Test a(2); 2、堆上创建对象2.1 无括号 12//调用默认构造函数(若由编译器生成则成员不初始化),堆上分配内存创建对象Test *a = new Test; 2.2 有括号 12//调用默认构造函数(若由编译器生成则成员初始化),堆上分配内存创建对象Test *a = new Test(); 2.3 有括号+参数 1Test *a = new Test(2); // 调用构造函数Test(int a),堆上分配内存创建对象 2.4 系统内置类型 123new int;// 分配内存,未初始化new int();// 分配内存,初始化为0new int(2);// 分配内存,初始化为2 转载自其他网站 Ancien 补充知识、线程池浅谈、数量谈、总结