关于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);
}
相关推荐
clint4563 天前
C++进阶(1)——前景提要
c++
夜悊4 天前
C++代码示例:进制数简单生成工具
c++
郝学胜_神的一滴4 天前
CMake 021: IF 条件判据详诠
c++·cmake
_wyt0014 天前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
LDR0064 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术4 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园4 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob4 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享4 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.4 天前
C语言--day30
c语言·开发语言