【发布时间】:2020-12-08 10:09:23
【问题描述】:
我有一个类foo,有两种方法:
static void BuildToto(...);
void BuildToto(...);
这两种方法的原型完全相同,只是一种是静态的,另一种不是。
在同一个类的第三种方法中,我想调用静态方法而不是另一个。所以,天真地,我写了这个:
foo::BuildToto();
但是在调试时,很明显代码执行起来就像上面一行中的指针 this 一样。如何显式调用静态方法?
【问题讨论】:
-
这不会编译,并且对于使用这个类的任何人来说都是相当混乱的。您需要重命名其中一个。
-
确实! Clang 说:错误:不能重载具有相同参数类型的静态和非静态成员函数
-
奇怪的是在 Visual Sutido 2019 中,它编译了!好的,如果没有其他方法可以继续,我将重命名方法...
-
我的 VS 说“不能用相同的参数类型重载静态和非静态成员函数”!?
标签: c++ class static-methods