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

时间:2016-07-27 13:28:11

标签: c++ pointers using

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

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

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

我测试了很多次;它总是nullptr

但是,我不确定我是否幸运,或者它是C ++规范。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

这是value initialisation,是的,给定指针类型,在这种情况下它总是为零。引用链接;

  

值初始化的影响是:

     

... [编辑与指针类型的情况无关] ......

     

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

答案 2 :(得分:1)

这与typedef无关。

指针类型的值初始化(即T())执行零初始化。 GOID是指针类型,因此您得到零。