1.静态成员变量的属性
1.静态成员变量属于整个类所有
2.静态成员变量没有存储在类的实例化对象的空间中,是存储在全局数据区
3.可以通过类名直接访问静态成员变量
4.可以通过创建好的对象访问静态成员变量
5.所有的实例化对象共享同一个静态成员变量
6.要在类外进行初始化
2.实例代码
#include <iostream>
class Testclass {
public:
Testclass() = default;
~Testclass() = default;
public:
static int vaule;
std::string name;
};
int Testclass::vaule = 0;
int main(int argc, char* argv[])
{
std::cout << Testclass::vaule << std::endl;
Testclass::vaule = 6;
std::cout << Testclass::vaule << std::endl;
Testclass object;
object.vaule = 10;
std::cout << Testclass::vaule << std::endl;
}
3.静态成员函数
1. 静态成员函数是类的成员函数,它们不属于任何对象,可以直接通过类名调用
2.静态成员函数智能访问静态成员变量,其他类型的变量是不能进行访问的。
3.普通的成员函数可以访问普通的成员变量,也可以访问静态成员变量
#include <iostream>
class Testclass {
public:
Testclass() = default;
~Testclass() = default;
public:
static void Setvalue(int val)
{
vaule = val;
}
void Setname(std::string str)
{
name = str;
}
public:
static int vaule;
std::string name;
};
int Testclass::vaule = 0;
int main(int argc, char* argv[])
{
Testclass object;
std::cout << Testclass::vaule << std::endl;
object.Setvalue(20);
std::cout << Testclass::vaule << std::endl;
}