C++静态成员

文章介绍了C++中的静态成员,包括静态成员变量和静态成员函数的特性。强调静态成员变量必须在类外初始化,静态成员函数不能是虚函数,且只能访问静态成员。同时,非静态成员函数可以访问静态成员。通过示例代码展示了静态成员的使用和访问规则。
摘要由CSDN通过智能技术生成

本文用于自己记录学习,由于初学C++,可能某些表述不正确,欢迎批评指正!

静态成员包括静态成员变量和静态成员函数

对于静态成员需要注意的是:

静态成员变量 必须在类内声明,必须在类外初始化 
静态成员函数不能是虚函数,因为虚函数是为了多态(父类指针指向子类对象 ),这样与对象有关 
静态成员函数只能访问静态成员 
非静态成员函数可以访问静态成员 (包括静态成员变量和静态成员函数)

下面举个例子:

#include<iostream>
using namespace std;
class A{
	public:
		int length;
		static int heigth; 
		A(){};//无参构造 
		//static int heigth=20;//错误 
		A(int len){
			length=len;
		}
		static void print(){
			//cout<<"length="<<length<<endl;//错误 静态成员函数只能访问静态成员 
				cout<<"static--print()"<<endl;
			//print1();//错误 静态成员函数只能访问静态成员 
		} 
	
	   void	print1(){
			cout<<"静态成员变量heigth="<<heigth<<endl;//正确,非静态成员函数可以访问静态成员  
			print();//正确 
		} 
		//错误 
//		virtual static void  print3(){
//			cout<<"virtual static--print3()"<<endl; 
//		}
      
};

int A::heigth=20; //不能写static int 
int main(){
	cout<<"A的heigth="<<A::heigth<<endl;//直接通过类访问 
	A a(30);
	A a1(10);
    cout<<a.heigth<<" "<<a1.heigth<<endl;//通过对象访问 
    a.heigth=10;
     cout<<a.heigth<<" "<<a1.heigth<<endl;//可以看到二者都为10,因为静态变量存储在静态区或说全局区,只有一份,所有对象都共享 
     a.print1();
     
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值