龙空技术网

C++学习大纲:静态成员

中国编程2025 93

前言:

今天大家对“静态数据成员是类的所有对象共享的数据吗”大概比较看重,小伙伴们都想要分析一些“静态数据成员是类的所有对象共享的数据吗”的相关文章。那么小编同时在网上汇集了一些关于“静态数据成员是类的所有对象共享的数据吗””的相关内容,希望各位老铁们能喜欢,大家一起来学习一下吧!


C++ 静态成员

在C++中,采用静态成员来解决同一个类的对象共享数据的问题。类的静态成员分为静态数据成员和静态成员函数。

1. 静态数据成员

静态数据成员在一个类中只分配一次存储空间,也就是一个类的所有对象的静态数据成员共享一块存储空间。

在计数时往往使用的就是静态数据成员。

2. 静态成员函数

静态成员函数只能访问静态成员(包括静态数据成员和静态成员函数),并且静态成员的访问也要遵循类的访问控制。

静态成员函数没有隐藏的this指针参数,因为静态成员函数对静态数据成员进行操作,而静态数据成员是某类对象共享的,它们只有一个拷贝,因此,静态成员函数不需要知道某个具体对象

————————————————

C++静态成员变量的初始化

需要注意的是:静态数据成员不能在类中初始化,一般在类外和main()函数之前初始化,缺省时初始化为0。

1.static成员的所有者是类本身,但是多个对象拥有一样的静态成员。从而在定义对象是不能通过构造函数对其进行初始化。

2.静态成员不能在类定义里边初始化,只能在class body外初始化。

3.静态成员仍然遵循public,private,protected访问准则。

4.静态成员函数没有this指针,它不能返回非静态成员,因为除了对象会调用它外,类本身也可以调用

静态成员属于全局变量,是所有实例化以后的对象所共享的,而成员的初始化你可以想象成向系统申请内存存储数据的过程,显然这种共有对象。不能在任何函数和局部作用域中初始化。

class point{

public:

point(){};

// ...

private:

static int x,y;

};

int point::x = 0;

int point::y = 0;

int main(){

// ...

}

————————————————


通过分享实用的计算机编程语言干货,推动中国编程到2025年基本实现普及化,使编程变得全民皆知,最终实现中国编程之崛起,这里是中国编程2025,感谢大家的支持。

原文链接:

原文链接:

标签: #静态数据成员是类的所有对象共享的数据吗