类的静态成员变量/函数的调用

做题的时候总搞错,基础太差了真emo

静态成员变量和静态成员函数属于类,而不属于对象,通常使用类名作用域调用,被所有该类的对象共享

类内

类的普通成员函数调用静态/普通成员变量及静态成员函数

调用普通成员变量

在类内直接就可以调用

类的静态成员变量/函数的调用_第1张图片

调用静态成员变量

静态成员变量在类外声明后也是可以直接调用

类的静态成员变量/函数的调用_第2张图片

调用静态成员函数

通过类名作用域可直接调用。

类的静态成员变量/函数的调用_第3张图片

类的静态成员函数调用静态/普通成员变量及普通成员函数

调用普通成员变量

静态成员函数无法直接调用普通成员函数,但是可以将对象作为参数传入静态函数中,使用对象间接调用。

类的静态成员变量/函数的调用_第4张图片

调用静态变量

调用静态成员变量前,需要在类外先将静态成员初始化,然后才可以在静态成员函数调用。

类的静态成员变量/函数的调用_第5张图片

调用普通成员函数

静态成员函数中如果想要调用普通成员函数,需要在静态函数中定义对象,通过对象调用普通成员函数,因为其需要使用对象调用。

类的静态成员变量/函数的调用_第6张图片

注意不能直接在类中定义自己类的对象,将自身类的对象作为类成员变量,构造函数的初始化参数列表要对对象构造,对象又一次进行构造函数,进而陷入循环。


类外

普通函数,静态函数都可以直接调用对方

类的静态成员变量/函数的调用_第7张图片

类的静态成员变量/函数的调用_第8张图片

总结:

普通成员函数调用静态变量/函数通过类名作用域可直接调用,静态成语函数可以直接调用静态成员变量,但无法直接调用普通成员函数/变量,可以通过对象间接调用。

你可能感兴趣的:(开发语言,c++)