【发布时间】:2012-02-10 18:55:41
【问题描述】:
我已经看到很多关于指针初始化的问题,但我找不到最近困扰我的问题的答案。为什么它适用于 gcc:
class C {
};
/* other stuff here */
typedef C* pTypeC;
C* pOtherTypeC = pTypeC(0);
在typedef上使用“(0)”来初始化指针为NULL是否有效?
【问题讨论】:
-
我不确定(因此这是评论而不是答案),但我认为它被解释为:
C* pOtherTypeC = (pTypeC)(0);等于C* pOtherTypeC = (C*)(0);留给你一个演员表。跨度> -
在 C++11 中你可以/应该使用
nullptr而不是NULL反正 -
@awoodland:为什么要这样做?不必要。如果您不关心那些额外的类型安全检查,您不妨只使用 0...
-
很遗憾,我的应用只能使用 C++03 标准。
-
@VladLazarenko 为什么不关心类型安全? >:|
标签: c++ pointers initialization