C++关键字static

static

static用来声明静态成员,包括静态数据成员和静态成员函数,它们被类的所有对象共享,实现一个类的不同对象之间的数据共享eg:统计总数、平均数。

静态数据成员存放在静态存储区,sizeof()的内存空间大小时不包括静态成员变量的大小;与普通的数据成员不同,无论创建多少个类的对象,都只有一个静态数据成员的拷贝,从而实现一个类的不同对象之间的数据共享。使用静态数据成员可以不必使用全局变量(也可以达到多个对象共享的目的):使用全局变量会带来不安全性,违反了面向对象程序设计的封装特性。

静态成员函数与非静态成员函数的区别:非静态成员函数有this指针,静态成员函数没有this指针;静态成员函数为类的所有对象共享,不与任何对象相关联,因此不具有this指针。

静态成员函数不能被声明为虚函数,静态成员函数对于每一个类只有一份代码,所有的对象共享这份代码,它不归某个对象所有,所以没有动态绑定的必要性

静态成员函数不同声明为const:声明为const (依赖于对象)是承诺不会修改对象的数据成员,而static成员函数不属于任何对象。

this指针是一个自引用指针,它的值是当前被调用成员函数所在的对象的起始地址。每当创建一个对象时,系统就把this指针初始化指向该对象。

(1) 当类的非静态成员函数返回当前对象时,会使用return *this

(2) 当成员函数的函数形参名与类的数据成员名相同时,会使用this->n=n


猜你喜欢

转载自blog.csdn.net/lizhentao0707/article/details/80794185
今日推荐