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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值