【C++】 类和对象期末复习笔记(二)

引言

续上一篇笔记,上一篇笔记的地址在这👇

笔记一

正文

1、静态成员
1)静态数据成员

a.若将类的一个数据成员定义成静态型的,则该类的所有对象的该成员共用同一存储空间

b.定义方法:前头加关键字static
例:

class Sample
{
private:
	int a,b,c;
	static int d;	   //静态数据成员 
};

c.静态数据成员必须在类体外初始化,不需要加static
PS:若在类外初始化时没有赋一个确切的值,则默认初值为0

d.静态数据成员是属于类的,一个类只有一个静态数据成员的存储空间,但类的对象也可以引用它

e.静态数据成员的作用:如果想在同类的多个对象之间实现数据共享,且不使用全局对象,此时就可以用静态数据成员

f.可以通过类名或对象名调用静态数据成员
例:

Sample::name;
a.name; 

g.不可以通过对象的this指针来访问静态数据成员

h.静态数据成员不可以用参数初始化表进行初始化操作,原因很简单,因为初始化表是在定义对象的时候进行的,利用了this指针进行操作

2)静态成员函数

a.与静态数据成员一样,静态成员函数也是属于类的,不属于对象

b.可以通过类名或对象名调用静态成员函数

c.在静态成员函数中无法直接访问非静态数据成员,需要通过对象名间接访问
例:

class Sample
{
	int a;         //非静态数据成员 
	static int b;     //静态数据成员 
public:
	static int c;        //公有静态数据成员 
	Sample(int x) {a=x;b+=x;}
	static void disp(Sample s)
	{
		cout<<"a="<<s.a<<", b="<<b<<endl;          //访问非静态数据成员和静态数据成员 
	}
};

2、友元
1)友元函数不是类的成员函数,但需要在类中加以声明。
例:

friend double dist(Point&, Point&);

2)使用友元函数是为了提高程序的执行效率。

3)慎用友元函数,因为它可以在类外直接访问类的私有成员(含保护成员),破坏类的封装性和隐蔽性。

4) 因为友元函数是类外的函数,所以它的声明可以放在类的私有段或公有段,没区别。

5)使用友元函数的情况:

a.运算符重载的某些场合需要使用友元
b.两个类要共享数据的时候

6)一个类可以作为另一个类的友元,这个类的所有成员函数都是另一个类的友元函数,称之为友元类。
例:

class A
{
	......
	friend class B;     //B类是A类的友元	
};

class B
{
	......
public:
	void f1();
	float f2();
	float f3();	
};

7)常数据成员的定义就是在前头加关键字const,常数据成员的值是常量,不可被修改。

8)常数据成员的初始化只能在类的构造函数的成员初始化列表中进行。

9)定义常成员函数的方法是在函数头的尾部、参数的右括号后面加关键字const。
例:

int fun() const
{
	x=5;
	y=6;
	return x+y;
};

10)常对象只能调用常成员函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值