You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中new关键字可接收哪些参数?与构造函数的调用关系是怎样的?

C++中new关键字与构造函数的关系解析
  • new是主动调用构造函数的一方:当你使用new MyClass(...)时,幕后执行流程是先由new运算符分配足够的内存空间,接着自动调用MyClass的对应构造函数来初始化这块内存里的对象。构造函数本身不会调用new,它只负责初始化已经分配好的内存。

  • new可以接收构造函数的参数:你看到的new MyClass(*this)完全合法,这里的*this就是传递给MyClass构造函数的参数。只要MyClass定义了匹配参数类型的构造函数(比如这里大概率是拷贝构造函数MyClass(const MyClass&)),new就会在分配内存后调用这个构造函数,用传入的参数完成对象初始化。

简单来说,new的职责是“分配内存+初始化对象”,初始化这一步就是靠调用构造函数完成的,所以它自然需要接收构造函数要求的参数来完成初始化工作。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:21:09