关于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);
}
相关推荐
没钥匙的锁133 分钟前
05-Java面向对象构造器与封装
java·开发语言
仙人球部落36 分钟前
-python-LangGraph框架(3-31-LangGraph 「合并式状态管理」的原理与实践)
开发语言·javascript·python
2401_8949155339 分钟前
Geo搜索优化排名源码部署搭建全流程详解
android·开发语言·flask·php·精选
aaPIXa6221 小时前
C++采样引导优化SPGO——比PGO更智能的编译器决策新方案
java·c++·人工智能
chouchuang1 小时前
day-025-面向对象-上
开发语言·python
Starmoon_dhw1 小时前
题解:P17078 夏日甜点
c++·学习·算法·图论
某不知名網友2 小时前
C/C++动态内存管理,智能指针及RAlI思想。
java·c语言·c++
sunfdf2 小时前
Next.js 新手从零部署到首跑实战指南
开发语言·javascript·ecmascript
hold?fish:palm2 小时前
从源码到可执行文件:C++程序的编译过程
开发语言·c++
随性而行3603 小时前
微信API接口与AI自动化:开发者的实现思路
运维·服务器·开发语言·人工智能·微信·自动化