有些情况下我们需要别名,可以决定使用using
或者define
,例如:
using ComponentRef = std::shared_ptr<Component>;
#define ComponentRef std::shared_ptr<Component>
有什么理由比另一个更受欢迎吗?
最佳答案
您应该更喜欢using
,因为#define
是一个直接的文本替换,背后根本没有“智能”。 #define
也会在您声明它的范围之外持续存在,并且可能会产生奇怪的副作用。
关于c++ - 对于 C++ 中的名称别名,应该优先使用而不是定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46657972/