相关疑难解决方法(0)

279
推荐指数
8
解决办法
19万
查看次数

为什么允许new运算符返回*void到每个指针类型?

在C++中,不允许在没有显式强制转换的情况下为任何整数指针分配void*指针.这需要使用static_cast.

但这是怎么回事:

int* iptr = new int;
Run Code Online (Sandbox Code Playgroud)

我知道新的运算符定义如下:

void* operator new(size_t);
Run Code Online (Sandbox Code Playgroud)

C++如何处理这个问题?我知道这是一个基本问题,但很重要.我也知道低级代码必须使用void.但这项任务如何合法?iptr是指向int的指针,new返回指向void的指针,它应该触发"错误:从'void*'到'int*'[-fpermissive]"无效转换的消息.

c++

9
推荐指数
1
解决办法
3128
查看次数

为什么new关键字返回指针而不是引用?

我知道new关键字返回指针,所以返回类型是void*.我的愚蠢问题是为什么new必须返回void*而不是void&?意味着当new他们创建的对象可以使用&运算符的地址返回该对象的地址时.

我知道指针和引用之间的区别.但最后我们使用指针而不是引用.请清除我的困惑谢谢.

c++ pointers

4
推荐指数
1
解决办法
2501
查看次数

标签 统计

c++ ×3

memory-management ×1

pointers ×1