"using" (typedef) 指针:它的默认构造函数返回 nullptr?

"using" (typedef) pointer : its default constructor return nullptr?

本文关键字:默认 构造函数 返回 nullptr using typedef 指针      更新时间:2023-10-16

using轻度封装的指针的默认构造函数是否总是返回nullptr

换句话说,这个函数总是返回nullptr吗?

using GOID  = Go_id*;  //some outer scope
GOID f(){
    return GOID(); //always nullptr?
}

我测试了很多次;它总是CCD_ 3。

然而,我不确定我是否幸运,或者这是C++规范。

是的,根据C++标准,使用表达式T(),其中T是指针类型,返回空指针。

这是值初始化,是的,给定指针类型,在这种情况下它将始终为零。引用链接;

值初始化的影响有:

[被编辑为与指针类型无关]。。。

4) 否则,对象为零初始化

这与typedefs无关。

指针类型的值初始化(即T())执行零初始化。GOID是一个指针类型,所以你得到零。