C++||函数及类
Posted 海滨IT圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++||函数及类相关的知识,希望对你有一定的参考价值。
函 数
送走了2020,迎来了2021。新年新气象,新的一年我们将继续学习C++的知识。
相信通过上次的学习,大家对函数的知识掌握的差不多了,接下来我们将继续遨游在函数的海洋里。
Part 1
函数重载
重载函数必须在下列一个或两个方面有所区别:
1、函数有不同参数个数
2、函数有不同参数类型
小试牛刀
编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。
解题思路:
功能相同,求最大数。
参数类型相同,个数不同。
可以采用函数重载。
Part 2
函数模板
函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。
函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。
在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。
template<typename T> 通用函数定义
template <class T> 通用函数定义
Part 3
有默认参数的函数
有时多次调用同一函数时用同样的实参,C++提供简单的处理办法,给形参一个默认值,这样形参就不必一定要从实参取值了。
float area(float r=6.5);
area( ); //相当于area(6.5);
area(7.5); //形参得到的值为7.5,而不是6.5
在调用有默认参数的函数时,实参的个数可以与形参的个数不同,实参未给定的,从形参的默认值得到值。
实参与形参的结合是从左至右顺序进行的。因此指定默认值的参数必须放在形参表列中的最右端,否则出错。
void f1(float a,int b=0,int c,char d=′a′); ×
void f2(float a,int c,int b=0, char d=′a′); √
小试牛刀
求2个或3个正整数中的最大数,用带有默认参数的函数实现。
解题思路:
功能相同,求最大数。
参数类型相同,个数不同。
可以采用函数重载。
还可以使用带默认参数的函数,当求2个正整数的最大值时,使用默认参数为0。
有关C++中函数的问题就讲解完了,为了对这块知识有更深的理解,那就拿起电脑写些程序来加强自己对知识的记忆吧~
类
Part 01
OOP的基本特点
OOP:Object Oriented Programming
面向对象的编程
01
抽象
抽象:是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。
先注意问题的本质及描述,其次是实现过程或细节。
数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。
代码抽象:描述某类对象的共有的行为特征或具有的功能。
抽象的实现:通过类的声明。
人实例
数据抽象:
char *name, char *gender, int age
代码抽象:
生物属性角度:
GetCloth(), Eat(), Step(),…
社会属性角度:
Work(), Promote() ,…
02
封装
将抽象出的数据成员、代码成员相结合,将它们视为一个整体。
目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。
实现封装:类声明中的{ }
class Clock
{
public:void SetTime(int NewH,int NewM,
int NewS);
void ShowTime();
private: int Hour,Minute,Second;
};
public、private:特定的访问权限
SetTime、ShowTime:外部接口
03
继承与派生
是C++中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。
实现:声明派生类——见后续讲解。
04
多态
多态:同一名称,不同的功能实现方式。
目的:达到行为标识统一,减少程序中标识符的个数。
实现:重载函数和虚函数。
Part 02
C++中的类
类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。
利用类可以实现数据的封装、隐藏、继承与派生。
利用类易于编写大型复杂程序,其模块化程度比C中采用函数更高。
Part 03
类的声明
类是一种用户自定义类型,声明形式:
class 类名称
{
public:
公有成员(外部接口)
private:
私有成员
protected:
保护型成员
}
公有类型成员:
在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。
私有类型成员:
在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。
如果紧跟在类名称的后面声明都为私有成员,则关键字private可以省略。
保护类型成员:
与private类似,其差别表现在继承与派生时对派生类的影响不同。
今天的学习就到这里结束了,类在C++中是很重要的一块,下周我们将继续进行类的讲解。我们下周再见~
编辑:高佳玉
审核:姜靖
责编:尹洪峰老师
祝大家新年快乐鸭~
JIXIE
以上是关于C++||函数及类的主要内容,如果未能解决你的问题,请参考以下文章