C++中的静态数据成员和静态成员函数搜狐汽车

在类中,静态成员分为静态数据成员和静态成员函数吗,本文主要对它们的基本概念和使用进行总结。一、静态数据成员

静态数据成员是类所有对象共享的成员,而不是某个对象的成员。使用静态数据成员可以节省内存,因为它是所有对象所共有的,只需要存储在一处,供所有对象共用。静态数据成员的值对每个对象都是一样的,但它的值是可以更新的。静态数据成员使用方法和注意事项如下:(1)静态数据成员在定义或说明时前面加关键字static。(2)静态数据成员初始化与一般数据成员不同,静态数据成员初始化格式如下:

数据类型类名::静态数据成员名=值;

这表明:初始化在类体外进行,而前面不加static,以免与一般静态变量或对象混淆;初始化时不需要加该成员访问控制符如private,public等;初始化时使用作用域运算符来标明它所属的类,因此,静态数据成员是类的成员,而不是对象的成员。(3)静态成员必须进行初始化。(4)引用静态数据成员时,既可以通过对象引用,也可以采用如下格式:

类名::静态数据成员名。

例如,有如下程序:

该程序的执行结果如下:

从中可以看到,不同对象都有自己的数据成员(如s1的n为1,s2的n为3),但都共享静态数据成员(对于所有对象,m均为9)。

二、静态成员函数

静态成员函数和静态数据成员一样,都属于类的静态成员,都不是对象成员。因此,对静态成员的引用不需要对象名。在静态成员函数的实现中不能直接引用类中说明的非静态成员,但可以引用类中说明的静态成员。如果静态成员函数中要引用非静态成员时,则可通过对象来引用。调用静态成员函数时既可以通过对象来调用,也可以通过类来调用。如下代码:

在Sample类中,说明并定义了静态成员函数disp()。在该函数的实现中,使用类的非静态成员(n)是通过对象(c)进行的,因为在类的静态成员函数中不能直接引用类的非静态数据成员,只能直接引用类的静态数据成员。

三、习题与解析

1、下述静态数据成员的特征中,()是错误的。A.定义静态数据成员时前边要加修饰符staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符D.静态数据成员不是所有对象所共用的。

解析:静态数据成员是类数据成员,为所有对象所共用。本题答案为D。但在类中仍可以像非静态数据成员一样赋值。

THE END
1.什么是静态成员(静态数据成员和静态函数成员)本文详细介绍了C++中的静态成员,包括静态数据成员和静态函数成员。静态数据成员在类中声明,类外初始化,所有对象共享同一份内存,具有唯一性。访问静态数据成员可通过对象或类名,静态函数成员则不包含this指针,无法访问非静态成员。静态成员的特点在于它们不属于特定对象,而是属于类本身,适用于表示所有对象共有的属性或行为https://blog.csdn.net/m0_65334415/article/details/124183166
2.InnoDB静态数据加密以透明的方式支持所有索引如果希望个对象中的数据成员的值是一样的,就可以把它定义为静态数据成员。 1、静态数据成员在内存中只有一份拷贝(而不是每个对象都分别为它保留一份空间),其值对所有对象都是一样的(即所有对象共享静态数据成员)。如果改变它的值,则在各对象中这个数据成员的值都同时改变。 https://blog.51cto.com/u_16099272/12887766
3.什么叫做静态数据成员理想股票技术论坛静态数据成员是面向对象编程中的重要概念,它代表了在类级别而非实例级别存储的数据。了解静态数据成员的定义、用法和特性对于编写高效的程序至关重要。 ,理想股票技术论坛https://www.55188.com/tag-695572.html
4.C++语言程序设计郑莉第四版课后题答案.pdf?5-5什么叫做静态数据成员?它有何特点? 解:类的静态数据成员是类的数据成员的一种特例,采用static关键字来声明。对于类的普数据 成员,每一个类的对象都拥有一个拷贝,就是说每个对象的同名数据成员可以分别存储不同的数值, 这也是保证对象拥有自身区别于其它对象的特征的需要,但是静态数据成员,每个类只要一个拷https://max.book118.com/html/2024/0108/5020120201011040.shtm