const与static成员
常函数
形式:void fun() const{;}
注意点:
1.构造函数和析构函数不可以为常函数
2.可以使用数据成员,不可修改数据成员,函数内部的变量可以修改
3.常对象(声明对象加const)只能调用常函数
4.常对象的this指针为const CStu*
静态成员使用方法
形式:
- static int a
- static void fun()
静态数据成员的初始化:
- 类外初始化,注意类名作用域前无修饰符
- 静态常量整形数据成员可以直接进行初始化
调用:
- 类名::数据成员
- 对象调用
##include <iostream>
using namespace std;
class Stu
{
public:
static int a;
static const int b = 20;
};
int Stu::a = 12;
int main()
{
Stu stu1;
cout << "stu1.a=" << stu1.a << " stu1.b=" << stu1.b << endl;
cout << "Stu::a=" << Stu::a << " Stu::b=" << Stu::b << endl;
return 0;
}
结果:
静态成员函数:
- 无this指针
- 不可以调用非静态成员,只能调用静态成员

- 调用方法与调调用成员函数一样
#include <iostream>
using namespace std;
class Stu
{
public:
static int a;
static const int b = 20;
int c;
static void fun()
{
cout << "b=" <<b<< endl;
}
};
int Stu::a = 12;
int main()
{
Stu stu1;
Stu::fun();
stu1.fun();
return 0;
}
结果:

本文使用 mdnice 排版