const 对象只能调用const成员函数,不能调用非const成员函数;
非const对象,及可以调用const成员函数,也可以调用非const成员函数
既可以通过类名调用静态成员函数,也可以通过类对象调用静态成员函数,因为静态成员函数只能访问静态成员变量,而静态成员变量是类中的变量,不是对象中的变量,这个类的所有对象共享同一份变量;
例子:
int A::NUMBER = 0; //类外初始化
class A
{
public:
static void setNumber(int n)
{
NUMBER = n;
}
private:
static int NUMBER;
}
//-----------------------------------------------------------------------------------------
//直接通过类名调用
A::setNumber(5);
//通过类对象调用,哪怕类对象是空指针,也不会报错和崩溃
A* a = nullptr;
a->setNumber(5);