首页 >后端开发 >C++ >什么是注入类名及其用途如何演变?

什么是注入类名及其用途如何演变?

Linda Hamilton
Linda Hamilton原创
2024-12-23 19:03:15222浏览

What is an Injected Class Name and How Has Its Use Evolved?

注入类名称:目的和历史演变

注入类名称的概念是指类在其自身内部的隐式声明范围。这允许在类主体中使用类名来引用类本身,即使在封闭范围内存在具有相同名称的其他实体也是如此。

注入类名的用途

注入的类名有几个实际用途,包括:

  • 歧义解决:它消除了对类的引用和封闭范围内具有相同名称的其他实体的引用之间的歧义。这对于与类共享相同名称的类成员和成员函数尤其重要。
  • 类模板中的便利:它允许在模板中使用类名,而无需指定模板参数列表,简化代码。

历史简介

注入类名的概念甚至在 C 之前就以某种形式存在。 ARM(Ada 参考手册)规定类名可以在类说明符中使用来引用类本身。

在 C 98 中,注入的类名被隐式插入到类的作用域中。然而,术语“注入类名称”是在 C 03 的 DR 147 中引入的。

示例用例

考虑以下类:

class X {
public:
  static X create() { return X(); }
};

如果没有注入的类名,就不清楚 create() 是创建一个临时 X 对象还是调用函数 X。注入的类名确保在 X 的主体内,名称 X 始终引用类本身,从而消除 create() 的意图的歧义。

以上是什么是注入类名及其用途如何演变?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn