1
我看过https://wiki.gnome.org/Projects/Vala/Manual/Classes#Types_of_class_members并进行了多次测试。作为结果,我相信这班级成员与Vala中的静态成员
静态成员:可以在一个类可以访问它&子类&所有这些
类成员的实例:在访问的所有实例(一类&子它的类)
这是正确的吗?还有其他的区别吗?
public class Test {
public static int static_member;
public class int class_member;
public int instance_member;
}
在编译时会产生这些C数据结构(我只展示的重要组成部分):
struct _Test {
gint instance_member;
};
struct _TestClass {
gint class_member;
};
extern gint test_static_member;
静态成员是使用--ccode
开关瓦拉编译
不知道Vala。在其他语言中,静态方法就像函数(它们没有任何状态),非静态方法在类的实例上工作。 – user5055454
使用变量:static就像一个类变量(所有实例共享它+可以在没有实例的情况下访问它)。 – user5055454
我也了解java,c#等语言。 vala中的概念是静态成员。 AFAIK类成员像实例成员一样工作(例如不能执行'Foo.class_func();'使'访问实例成员'错误),除了类成员将在类范围内执行,不能是'虚拟',等等 –