C++语言学习记录-28:静态成员

静态成员

使用静态成员的目的是为了实现数据之间的共享,使用全局变量可以实现数据共享,但是全局变量具有其局限性,因此主要通过使用类的静态成员进行数据的共享。

静态数据成员

在类中的静态成员可以实现多个该类的对象之间的数据共享,在实现共享的同时还保证了数据的安全性,不会被外部成员访问.因此,一个类的静态成员是所有该类的对象的成员,而不是具体某一对象独有的成员。

使用静态成员函数的另一个好处是节约内存空间,对于同一个类的多个对象来说,静态数据成员是所有类的对象所共有的,储存在固定的内存空间中,供所有类的对象共同使用

类的静态数据成员是属于类的而非某一个对象的,所以在使用静态成员时调用语句应该是“类名称+域区分符+成员名称”

静态成员的使用方法和注意事项:

  • 静态数据成员在定义或说明是前面加关键字static

  • 静态成员初始化与一般数据成员初始化不同,静态成员的初始化方式为:

    int classname:: var1 = 1;
    

    在这里只是举出一个例子,前面的是数据类型,然后是相应的类名,在作用域运算符之后命名并对变量进行赋值

    同时要注意:

    1、初始化在类外部进行,前面不加static,以免与一般静态变量或者对象相混淆

    2、初始化时不加该对象的访问权限控制符private或public等

    3、初始化时使用作用域运算符来标明它所属的类,因此,静态数据成员是类的成员而非对象的成员

  • 静态数据成员是静态存储的,具有静态生存期,必须对它进行初始化

  • 引用静态数据成员时,采取以下格式:

    classname::varname
    

下面使用一个实例来演示静态数据成员的使用方法:

#include<iostream>
#include<string>
using namespace std;
class Myclass
{
    
    
public:
	Myclass(int a, int b, int c);
	void getSum();
private:
	int A, B, C;
	static int sum;
};
int Myclass::sum = 0;
Myclass::Myclass(int a, int b, int c)
{
    
    
	A = a;
	B = b;
	C = c;
	sum += A + B + C;
}
void Myclass::getSum()
{
    
    
	cout << sum << endl;
}
void main()
{
    
    
	Myclass M(3, 7, 10), N(14, 9, 11);
	M.getSum();
	N.getSum();
}

代码运行结果:

54
54

这也从侧面说明了sum是所有成员公有的,拥有静态生命周期

静态成员函数

静态成员数据与静态成员函数相同,他们都属于一个类的静态成员而非某一对象的静态成员,在使用静态成员函数时不需要对象名

调用静态成员函数的语法是(以下为事例格式)

classname :: func (int a)

猜你喜欢

转载自blog.csdn.net/leanneTN/article/details/113139610
今日推荐