我现在正在编写很多java,所以我对java static 方法和c ++ static 函数感到困惑。
在java中,您可以从类中调用静态方法,并经常使用/查看它,例如:public class A{
public void static b(){
System.out.println("hello");
}
}
你可以做,A.b();
你能用C ++做到吗?如果是这样,与在java中这样做相比,它不是那么受欢迎吗?
答案 0 :(得分:5)
您可以使用::
范围运算符在C ++中执行此操作:
A::b();
正如所指出的,如果您在当前范围内拥有班级a
的实例A
,您也可以拨打a.b()
。在实例上调用静态方法通常会让人感到困惑,因此您可能希望避免使用它。
答案 1 :(得分:2)
您可以使用A::B()
如果a.B()
是a
的实例,您也可以使用A
。然而,对于阅读代码的人来说,这只会令人困惑。因此,只需坚持使用A::B()
静态方法即可清楚地显示您的意思。