c++ 操作员new返回作废原因 *;

uz75evzq  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(76)

operator new返回void*的意义/原因是什么?
我试着想出一些想法来解释为什么会有这样一个操作员版本,但是我想不出一个。

gtlvzcf8

gtlvzcf81#

operator new在C++中是一个标准库函数,用于在运行时动态地为对象分配内存。该函数被定义为返回指向void的指针,这意味着它可以返回指向任何类型的对象的指针。这允许operator new用于任何类型,包括用户定义类型,而无需为每个特定类型重载运算符。
返回void*指针也很有用,因为它允许程序员将指针类型转换为适当的类型,从而允许相同的内存分配函数用于不同的数据类型。这在使用泛型代码时也很有用,在泛型代码中,对象的类型直到运行时才知道。
另外,返回void*指针允许operator new与存储器分配库结合使用,诸如在嵌入式系统中使用的那些存储器分配库,其可能具有不同的存储器分配要求。
简而言之,operator newvoid*返回类型是为了实现函数的最大灵活性和可重用性。

相关问题