using
轻微封装的指针的默认构造函数是否总是返回nullptr
?
换句话说,这个函数总是返回nullptr吗?
using GOID = Go_id*; //some outer scope
GOID f(){
return GOID(); //always nullptr?
}
我测试了很多次;它总是nullptr
。
但是,我不确定我是否幸运,或者它是C ++规范。
答案 0 :(得分:2)
是的,根据C ++标准使用表达式T(),其中T是指针类型,返回空指针。
答案 1 :(得分:1)
这是value initialisation,是的,给定指针类型,在这种情况下它总是为零。引用链接;
值初始化的影响是:
... [编辑与指针类型的情况无关] ......
4)否则,该对象为零初始化
答案 2 :(得分:1)
这与typedef无关。
指针类型的值初始化(即T()
)执行零初始化。 GOID
是指针类型,因此您得到零。