#include<iostream>
using namespac std;
class MD
{
public:
void show() //普通成员方法
{
cout<<a<<endl;
cout<<b<<endl;
}
static void show() //静态成员方法
{
cout<<_Hm<<endl;
}
void show() const //常方法
{
cout<<a<<endl;
}
private:
int a;
int b;
static int _Hm; //静态成员变量
};
int MD::_Hm = 0; //在类中定义静态的成员变量,需要在类外加作用域并初始化
int main()
{
MD l1;
l1.show(); //调用普通方法
MD l2;
l2.show(); //调用常方法
MD::show();//调用静态成员方法
}
1、普通成员方法
普通成员方法在作用域当中;编译时会有this这样的一个指针。直接用类定义的对象调用普通成员方法;普通成员方法可以访问私有的成员变量。
2、静态成员方法
在类的作用域中;不会产生this指针。可以访问对象的私有成员变量,但是不能任意调用(因为不产生this指针),只能调用其他的static的成员变量。我们经常把全局共享的数据(比如教室对于学生是共享的)写成静态的。
3、const方法
在类的作用域当中,会有一个const *this 这样的指针。普通对象和常对象都可以调用。可以访问对象的成员但不能更改。