在 C 中的类实例上调用静态成员方法
出现了关于在 C 中的类实例上调用静态成员方法的有效性的问题。静态成员方法通常通过类名调用,但下面的代码片段似乎与此约定相矛盾:
问题:
答案:
虽然静态成员方法通常是通过类名称调用的,但 C 标准允许在类实例上调用它们。这从 C 03 标准中的以下部分可以明显看出:
“类 X 的静态成员 s 可以使用限定 ID 表达式 X::s 来引用;不必使用该类引用静态成员的成员访问语法 (5.2.5) 可以使用类成员访问语法来引用静态成员,在这种情况下将计算对象表达式。”
这意味着调用通过类实例语法的静态成员方法不仅是允许的,而且具有不同的语义。在这种情况下,将对对象表达式进行求值,这可能会在泛型编程上下文中带来好处。
示例:
以下代码演示了静态成员方法如何可以与类名和实例语法一起使用:
以上是C 中的类实例可以调用静态成员方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!