C 中的注入类名称:目的和历史
C 有一个有趣的概念,称为注入类名称。通过将类名注入到自己的作用域中,该语言可确保类内的名称查找始终找到当前类,即使同一封闭作用域中存在其他类似命名的类也是如此。
此功能在场景中变得至关重要比如下面这样:
void X() { } class X { public: static X create() { return X(); } };
create()函数是构造临时X对象还是调用函数X?在全局范围内,将调用函数 X。因此,注入的类名保证在 X 类主体中,名称 X 始终引用类本身,从而防止潜在的歧义。
注入的类名在类模板中也被证明是有益的,允许模板类无需指定参数即可引用,从而简化了表达式。
尽管概念上存在于 C 98 中,但术语“注入类名”是在 C 03 中引入的(DR 147)。在 C 98 之前,ARM 语言规范隐含了这个概念,但缺乏具体的术语。
注入类名称的优点:
以上是C 中注入类名的目的和历史是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!