注入类名称:其目的和历史
在 C 中,一个称为“注入类名称”的特殊功能提供了一种方法访问当前类在其范围内的名称。此功能进入了 C 03,巩固了它在语言中的存在。
注入的类名称的必要性
注入的类名称可以防止在多个情况下出现歧义具有相同名称的类存在于同一范围内。如果没有此功能,类中的名称查找可能会解析为在更高级别声明的类的不同实例。
考虑以下示例:
void X() { } class X { public: static X create() { return X(); } };
没有注入的类名称,create() 函数可以创建类型 X 的临时对象或调用函数 X(),具体取决于上下文。但是,使用注入的类名,名称查找会在类的范围内开始,确保 X 始终引用当前类。
模板中注入的类名
另一个注入类名的优点在于类模板。它允许在类模板中使用 Foo(无需指定任何模板参数),有效地引用模板的当前实例。
注入类名称的历史
C 98中存在注入类名的概念,但官方术语是在C 03中引入的。C 98标准规定类名被插入到声明范围和类的范围中。在 C 03 中,这被称为“注入的类名”。
注入的类名在 C 中起着至关重要的作用,可以增强代码可读性并解决类定义中的歧义。它仍然是该语言不可或缺的一部分,在现代 C 代码库中广泛使用。
以上是C 中注入的类名是什么以及为什么它很重要?的详细内容。更多信息请关注PHP中文网其他相关文章!