静态成员
来源:互联网 发布:淘客cms网站 编辑:程序博客网 时间:2024/05/19 06:49
在一个类中,若将一个成员变量声明为static,这种成员称为静态成员变量。与一般的数据成员不同,无论建立了多少个对象,都只有一个静态数据的拷贝。静态成员变量,属于某个类,所有对象共享。静态变量,在编译阶段就分配空间,对象还没有创建时,就已分配空间。
静态成员变量必须在类中声明,在类外定义。静态数据成员不属于某个对象,在对对象分配空间中不包含静态成员。静态数据成员可以通过类名或者对象名来引用。
class Person
{
public:
static int mage;//类内定义
void plusplus()
{
mage++;
}
private:
static int weight;
};
int Person::mage = 0;
int Person::weight = 0;//类外初始化
void test()
{
Person person;
person.plusplus();//mage=1;通过对象访问静态成员
Person per;
cout << per.mage << endl;//per.mage=1,静态成员只有一个拷贝,所有对象共享
Person::mage = 100;//通过类名访问静态成员
//Person::weight...静态成员也有访问权限,私有成员,类外不能访问
cout << "sizeof(Per)=" << sizeof(per) << endl;//sizeof(Person)=1,静态成员不占用类的空间。
}
关于sizeof(空类)=1的问题:
编译器会为空类安插一个char,用于辨识其实例的地址。
0 0
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 静态成员
- 关于Drawable资源被用在多个地方显示图片时,改变其中一个实例的状态会同时作用到其他实例的解决方法
- BeautifulSoup 一行代码获取今日日期,与smtplib结合
- BeanUtils介绍及其使用
- linux 电子邮件服务器Postfix安装与配置
- 位图和哈希切分的大数据处理
- 静态成员
- Mayor's posters
- 外挂学习之路(15)---lua语言的使用,
- Linux内核启动应用程序分析(二)
- Arrays类对数组的操作
- Batch Normalization Tensorflow代码
- c++中的system("pause")的作用
- webrtc android编译
- Mike and gcd problem-codeforces-Round 410 Div2-C