1、函数模板
帮助实现重载的工具,定义一个通用函数,可以指代所有函数体相同的函数(即类型不同,但参数数量一样,内容相同)
(1)通用函数定义:
template<typename T>
(2)函数体定义:
T 函数名(T a,T b,T c) //原来写类型的地方写T
{
函数体
}
2、有默认参数的函数
(1)默认值写在最右侧
比如:
int f(int a,int b,int c,int d)
假设要给b一个默认值3,则写成:
int f(int a,int c,int d,int b = 3)
(2)有默认值不代表函数调用时有默认值的数不可以自己定义
(3)一个函数名不能同时用于重载函数和带默认参数值的函数
3、变量的引用(同指针)
(1)格式:
类型&变量1(引用或叫别名)=变量2(真正的变量)
(2)引用与其代表的变量共享一个存储单元(地址),因此如果引用的内容改变,变量也随之变化
(3)一个变量可以有多个别名,嵌套即可
int a = 3;
int &b = a;
int &c = b;
但是一个引用只能为一个变量使用,不能二次声明
(4)不能建立引用的数组
4、类
class 类名{ 数据和函数 };(c++最后要写;)
如果不作private或public的声明,默认成员为private
类是对象的抽象,里面包括了对象的基本属性(总体特征),具体数值就由对象自己设置,即对象是类的具体实例
5、对象
定义:
(1)先声明类类型,再定义对象
类名 对象名;
(2)在声明类的同时定义对象
class 类名{
public:
//公有部分类外可以调用
private:
//私有部分
}对象;
对象占用的内存空间是数据成员占用的空间
6、在类外定义成员函数
class Student
{public:
void display(); //函数声明
private:
int num;
string name;
char sex;
};
void Student::display() //类外定义函数
{cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
Student stu1,stu2;
:: 作用域限定符,用于声明函数属于哪个类
如果::前面没有类名,表示它是普通函数(全局函数)