C++学习记录 类数据成员&类成员函数

类成员:

成员属于类,不属于类的对象。与之相对的是对象成员/实例成员,是属于对象的成员。

关键字static:

使用关键字static来创建一个类成员。类数据成员与类本身相关,与任何类对象无关。

声明:

class C {
public:
	static unsigned getN()  {return n;}
private:
	static unsigned n;
};

类成员与对象成员的异同示例:

 类数据成员必须在类内用static进行声明,且必须在类外定义。定义时可以指定初值,默认是0.

class C {
public:
	static unsigned getN()  {return n;}
private:
	static unsigned n;
};


unsigned C::n = 0; //define

(将数据成员设置为static不会改变其对应的sizeof(对象或类型所占的内存字节数))

static成员函数:类成员函数

静态成员函数只能访问其他的静态数据成员;非静态成员函数可以访问static或非static成员.

static成员函数可以是inline或非inline.

对于static数据成员和static成员函数的访问方式:通过对象访问,或者直接通过类访问.

class C {
public:
	static  int p;
	static void cmath();

};

int main() {
	C c;
	//通过对象访问
	c.cmath();
	int x1 = c.p;
	//通过类访问
	C::cmath();
	int x2 = C::p;
}

成员函数内部的静态变量:

将成员函数内的某个局部变量x定义为static型,该类的所有对象调用该函数时共享此变量x;不同对象在访问该函数时访问同一个x.对于非静态局部变量,每个对象都各自拥有一个变量x.

———————————2021-11-05-18:32———————————

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值