21xrx.com
2024-11-10 00:23:53 Sunday
登录
文章检索 我的文章 写文章
C++类中定义的new重载函数中是否包含this指针?
2023-06-27 03:12:32 深夜i     --     --
C++ new重载 this指针

在C++类中,除了构造函数和析构函数之外,还可以重载new操作符。当我们使用new关键字创建一个类的实例时,会自动调用重载的new函数来为对象分配内存。但是,这个new函数中是否包含this指针呢?

答案是不包含。this指针通常用于指向当前对象的指针,在类的成员函数中非常常见。但是,重载的new函数不是类的成员函数,而是一个全局函数。这意味着它不属于任何一个类,也没有this指针可言。

重载new函数的一般形式如下:

void* operator new(size_t size);

void* operator new[](size_t size);

可以看到,这两个函数并没有传入任何对象的指针,因此也就没有this指针。他们只是被用来动态分配内存空间的函数。

当我们使用new关键字创建一个对象时,编译器会自动调用适当的构造函数来初始化对象。这个过程也不需要this指针来完成,因为编译器已经知道了要调用哪个构造函数。

总之,重载的new函数不包含this指针,因为它们只是全局函数,而不是类的成员函数。在使用new关键字创建对象时,编译器会自动处理所需的构造函数和内存分配的过程,而不需要手动指定this指针。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复