c/c++基础(二十四) 静态属性与静态方法

本文介绍了C/C++中的静态属性与静态方法,强调了静态数据成员不能在类内初始化,只能在类体外初始化,并且静态成员函数在类外实现时不需要static关键字。此外,还讲解了静态成员函数没有this指针,不能直接访问非静态成员,但能访问静态成员,并可通过对象名访问非静态成员。
摘要由CSDN通过智能技术生成

举个例子:

类A的声明与实现如下:

#pragma once
class A
{
	public:
		int count1;
		//static int count2=100;//error ,带有类内初始值设定项的成员必须为常量
		//const static int count3=100;//正确 
		static int count2;
	public:
		int getCount1();
		static int getCount2();

	public:
		A(void);
		~A(void);
};

#include "stdafx.h"
#include "A.h"


A::A(void):count1(99)
{
}


A::~A(void)
{
}

int A::getCount1()
{
	return count1;
};

//static int A::getCount2()//error,此处不能指定存储类,即类体外来实现静态成员函数,不能加static关键字
//{
//
//};

int A::getCount2()
{
	return count2*1000;
};

//初始化
int A::count2(1000);


测试文件如下:


// staticTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include "A.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	A *a=new A;
	//访问非静态成员
	cout<<a->count1<<endl;	
	cout<<a->getCount1()<<endl;
	
	cout<<
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值