关于C++中new的基本使用方法介绍

如大家所了解的,在现代主流面向对象语言中,new是一个非常人尽皆知的操作,其用于向堆内存申请一定的空间,并构造出一个对象。

而 new 操作一般来说会经过以下三个步骤:

向堆申请对应大小的空间;

调用指定对象的指定构造器;

返回空间的地址或引用。

了解到这一步,对于大多数开发者而言已经是能够应付开发中的大多数场景。

而在 C++ 语言中,为了保证能够其对内存有更加自由的操作,所提出的拓展性极为丰富。

new的基本使用

虽然 new 操作一直被大家非常频繁的使用,但是对于一些比较特殊的情况,却很少有人注意。下面来先介绍以下 new 的基础使用方式。

单个对象

new 操作最基本的用法就是 new 出一个对象了。这个对象可以是基本的数据类型,也可以是自定义的类型,最常见的就是一个类对象。

而当对基本类型不指定具体初始化数据时,就会出现所谓的垃圾值。而当类可以进行默认构造时,也可以不进行任何修饰,但同样的可以调用指定的构造函数。

在 C 语言中,使用 malloc(),返回的是 void* 类型。而 C++ 中的 new Type 返回的是具体 Type* 的类型,因此这里还可以使用 auto 来自动识别指针类型。

复制代码
struct Node {
    int x;
    Node(int x) {
        this->x = x;
    }
};

int main() {
    int* p = new int;
    auto nodep = int Node(1);
}
相关推荐
hetao17338374 分钟前
2026-09-13 hetao1733837 的刷题记录
c++·算法
lv__pf5 分钟前
09-深入理解AQS之独占锁ReentrantLock源码分析【TL 并发 09】
java·开发语言
hansang_IR11 分钟前
【题解】[JSOI2016] 扭动的回文串
c++·算法
有点。21 分钟前
C++03阶段练习(一)
数据结构·c++
这是程序猿25 分钟前
Java线程池深度剖析:源码原理、核心参数、任务调度与生产调优实战
java·开发语言·python
刃神太酷啦31 分钟前
Redis 核心进阶:哨兵、集群、缓存问题与分布式锁详解----《Hello Redis!》(6)
linux·c语言·数据库·c++·redis·分布式·缓存
quantdash_cc37 分钟前
从数据采集到策略消费,股票日内行情管道应该怎么设计?
开发语言·python·数据分析·量化交易·股票数据·quantdash
郝学胜-神的一滴1 小时前
C++20模板元编程 01:从零吃透模板核心底层逻辑
开发语言·c++·vscode·程序人生·开源
6Hzlia1 小时前
【Classic 150 刷题计划】 LeetCode 123. 买卖股票的最佳时机 III | C++ 状态机动态规划与通用交易拓展
c++·算法·leetcode
可乐鸡翅yeah_1 小时前
HLS流媒体首屏起播慢深度优化,从分片、索引、播放器全链路调优
开发语言·javascript·ecmascript·m3u8·m3u8在线