1.static 修饰类的成员变量
- 1). 静态成员变量是先于类的对象而存在
- 2). 这个类的所有对象共用一个静态成员
- 3). 如果静态成员是公有的,那么可以直接通过类名调用
- 4). 静态成员数据在声明时候类外初始化
#include <iostream>
using namespace std;
class Data
{
public:
Data(){}
~Data(){}
void show()
{
cout<<this->data<<" "<<number<<endl;
}
static void showData()//先于类的对象而存在
{
//这方法调用的时候不包含this指针
cout<<" "<<number<<endl;
}
private:
int data;
public:
static int number; //静态数据在声明时候类外初始化
};
int Data::number=0;//静态成员初始化
int main()
{
Data::showData();//通过类名直接调用
Data::number = 100;//通过类名直接使用
Data d;
d.show();
d.showData();//通过对象调用
cout << "Hello World!" << endl;
return 0;
}
2.static 修饰类的成员方法
- 1). 静态成员函数是先于类的对象而存在
- 2). 可用类名直接调用(公有)
- 3). 在静态成员函数中没有this指针,所以不能使用非静态成员
3.const 修饰成员变量
const int data;
const 修饰的成员变量必须在构造方法的参数列表初始化(const static int pdata=10;除外)const 修饰的成员变量不能被修改
4.const 修饰成员方法
void showData()const{ }
const 修饰的成员函数中不能修改成员变量,不能调用非 const 修饰的函数