静态成员变量
static 在类中使用的时候,大家可以共享他的数据,就是无论创建多少个对象,都是共享一个静态成员,举个例子
class stu
{
static int c;
public:
void put (int a)
{
c=a;
}
void get ()
{
cout <<"c="<<c<<endl;
}
void plus()
{
c+=2;
}
};
int stu::c=0; //静态成员的初始化,他只能初始化在类的外部
int main(int argc, char *argv[])
{
stu my;
my.put(10);
stu my1;
my.get();
my.plus();
my1.plus(); //不同的类对c这个成员进行加法运算,但是都是在上一个的基础上
my.get();
return 0;
}

静态成员函数
就是在成员函数前面加上static,但是由于他分不清是哪个类的,所以他没有this指针
class stu
{
static int c;
public:
int p;
void put (int a)
{
c=a;
}
void putp (int a)
{
p=a;
}
void get ()
{
cout <<"c="<<c<<endl;
}
void plus()
{
c+=2;
}
static void my_cout ();
};
int stu::c=0;
void stu:: my_cout ()
{
cout <<"c="<<c<<endl;
cout <<"p="<<p<<endl;//错误,不能访问
}
int main(int argc, char *argv[])
{
stu my;
my.put(10);
my.putp(10);
my.my_cout();
stu my1;
my.get();
my.plus();
my1.plus();
my.get();
return 0;
}
我们观察结果知道,静态函数有如下的特点
- 出现在类体外函数体不能定义static
- 静态函数和静态成员之间可以相互访问
- 但是静态函数不能访问非静态函数的成员
优点:由于没有this指针的额外,速度快!
本文深入探讨了C++中静态成员变量和静态成员函数的特性与应用。通过实例展示了静态成员变量如何被所有对象共享,以及静态成员函数如何在没有this指针的情况下工作,揭示了它们的速度优势。
3293

被折叠的 条评论
为什么被折叠?



