什么是成员函数?
类成员包括数据成员和成员函数。
类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其它变量一样。
成员函数的特点:
1、类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员。
2、成员函数可以定义在类定义内部。或者单独使用范围解析运算符::来定义。
3、在类定义中定义的成员函数把函数声明为内联函数。
4、成员函数可以重载;但是成员函数只能重载本类的其它成员函数。类的成员函数与普通的非成员函数以及在其它类中声明的函数不相同,也不能重载他们。
5、成员函数可以设置参数的默认值
静态成员函数与非静态成员函数的区别
1、分配的时间不同
静态成员函数属于类本身,不属于具体的类对象,在类加载时分配内存空间,程序结束时才消失。可以类名直接访问。
普通的成员函数属于类对象,在对象创建时才会分配内存,即动态分配内存,不用时消失。通过类对象去访问。
注:静态成员不能去访问普通成员,静态成员存在于普通成员之前,所以不能去访问一些不存在的东西。
2、是否传递this指针
普通成员函数传递this指针,实质是一个包含指向具体对象的this指针的函数,即其隐式包含一个指向当前对象的this指针。
静态成员函数不传递this指针。
注:静态成员函数不接受隐含的this指针,无法直接访问类中的非静态成员。
3、成员函数的访问
普通成员可以访问静态成员
静态成员函数只能通过对象间接引用非静态成员
总结:
1、格式
静态数据成员初始化格式:
《数据类型》《类名》 ::《静态数据成员名》=《值》
引用格式:《类名》::《静态成员名(成员数据/成员函数)》
2、静态成员变量性质:
a、只能被初始化一次,下次执行该语句时自动跳过
b、属于类,而非具体对象
3、静态成员函数性质
a、不包括指向具体对象的this指针
b、不可以直接调用普通函数
c、类加载时分配内存空间属于类而非具体对象