1。。静态成员变量
#include <iostream>
#include <string.h>
using namespace std;
class Student
{
private:
char name[20];
public:
static int count; //静态成员变量在类里面声明 所有对象共享静态成员变量
public:
Student(char *n);
};
int Student::count = 0; //在类外面定义
Student::Student(char *n)
{
strcpy(name, n);
count++;
}
int main()
{
Student *s1 = new Student("aa");
Student *s2 = new Student("bb");
cout << s1->count << endl;
cout << s2->count << endl; //调用方式1
cout << Student::count << endl; //调用方式2
return 0;
}
运行结果:
2
2
2
2.。。静态成员函数
#include <iostream>
#include <string.h>
using namespace std;
class Student
{
private:
char name[20];
static int count; //静态成员变量在类里面声明 所有对象共享静态成员变量
public:
Student(char *n);
static void print();
};
int Student::count = 0; //在类外面定义
Student::Student(char *n)
{
strcpy(name, n);
count++;
}
void Student::print()
{
cout << count << endl;
// cout << name << endl; //静态成员函数不能访问普通成员变量
}
int main()
{
Student *s1 = new Student("aa");
Student *s2 = new Student("bb");
s1->print(); //方式1:可以通过对象访问静态成员函数
s2->print();
Student::print(); //方式2:可以通过类名来访问静态成员函数
return 0;
}
运行结果:
2
2
2