用 C 语言中的非静态函数重载静态函数
上下文:
重载函数C 不支持具有不同的返回类型,并且在尝试使用非静态函数重载静态函数时同样适用。这种情况在提供的类定义中进行了说明,但它产生了错误。
标准禁止:
C 标准明确禁止此行为(ISO 14882: 2003,第 13.1/2 节):
歧义注意事项:
即使允许重载,也会引入歧义,因为:
例如:
<code class="cpp">class Foo { public: static void print() { cout << "static" << endl; } }; Foo f; f.print(); // Ambiguous: static or non-static call?</code>
替代方法:
由于在 C 中无法确定函数是否被静态调用,因此可以使用替代方法来实现所需的功能:
以上是C 中的静态函数可以用非静态函数重载吗?的详细内容。更多信息请关注PHP中文网其他相关文章!