C++Static

4 阅读1分钟

一.类的静态成员

静态成员是声明为static的成员,在类的范围内所有对象共享该数据。 静态成员如果是公有的可以直接访问,访问格式:
①类名::静态成员
②对象名.公有数据成员
③对象指针->静态成员

二.静态数据成员

特点:静态数据成员不属于任何对象,它在程序编译时就创建并且初始化。
静态数据成员必须进行初始化,而且通常在类外单独定义和初始化

三.静态成员函数

1.定义:在函数定义前加上static
2特点:
静态成员函数不访问类中的非静态成员
②静态成员函数没有this指针
③既可以在类内定义,也可以在类外定义(定义时候前面不加static)
④属于类本身,不属于任何对象

举个栗子

Class Student
{
public:
   static int count; //班级人数
   static double total;//班级总分
   Student(double score)//构造函数
   { 
     this->score=score;
     count++;
     total+=score;
   }
   static double getTotal()
   {
    return total;
   }
private:
   double score;//个人的分数
};
int Student::count=0;//静态数据成员的初始化
double Student::total=0;

int main()
{ 
    Student a(70);
    Student b(80);
    cout<<Student::getTotal()<<endl;
    Student c(90);
    cout<<a.count<<endl;//此时会打印输出3,因为已经创建了三个对象,count是共享的
    return 0;
}