什么是静态函数介绍
函数调用的结果不会访问或者修改任何对象(非static)数据成员,这样的成员声明为静态成员函数比较好。如果static int func(....)不是出现在类中,则它不是一个静态成员函数,只是一个普通的全局函数。由于static的限制,它只能在文件所在的编译单位内使用,不能在其它编译单位内使用。
静态函数注意事项
静态成员函数的声明除了在类体的函数声明前加上关键字static,以及不能声明为const或者volatile之外,与非静态成员函数相同。出现在类体之外的函数定义不能制定关键字static。
静态成员函数没有this指针。
静态函数Static关键字
在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。
用static声明的方法是静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
静态方法不再是针对于某个对象调用,所以不能访问非静态成员。
可以通过对象引用或类名(不需要实例化)访问静态成员。
java:::public class Cat{private static int sid = 0;private String name;int id;Cat(String name){= name;id = sid++;}public void info(){System.out.println(\"My name is \"+name+\" No.\"+id);}public static void main(String arg){Cat.sid = 100;Cat mimi = new Cat(\"mimi\");mimi.sid = 2000;Cat pipi = new Cat(\"pipi\");}}
如果某些成员函数只访问静态数据成员,那么最好把他们声明为静态的成员函数,因为这样不需要特定的对象就可以访问这些成员变量了。