C++ 类和对象期末复习笔记

Posted 猛男Banana君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)常对象只能调用常成员函数。

以上是关于C++ 类和对象期末复习笔记的主要内容,如果未能解决你的问题,请参考以下文章

C++ 类和对象期末复习笔记——继承和派生

C++ 类和对象期末复习笔记——多态性

C++的期末大概复习

面向对象程序设计期末复习笔记

c++期末知识点快速复习,最全整理

c++复习笔记——继承