默认参数:


//默认参数
//函数的默认参数,参数后面有'='
//函数参数注意事项,如有一个位置有了默认参数
//那么从该位置的后面就必须要有参数

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
void func(int a, int b = 10, int c = 4) { //b有默认参数,b的后面也应该要有默认参数,只要有一个位置有,那么之后的也必须要有 //如果有传入参数,那么就以传入参数为准,如果没有就是默认参数 //函数声明和实现只能出现一次默认参数
}
void  func(int a, int b = 34, int c = 34);//函数声明和函数实现只需要出现一次默认参数就可以 void  func(int a, int b = 4, int c = 34){}
func(12,5);//会传入两个参数,a=12,b5,c=34,c的话会使用默认参数

 

 

占位符:

//占位参数 //如果有了占位参数,函数调用的时候必须要提供这个参数
void  fun2(int a, int) {//有了占位符,必修要传入两个参数 } 
在c语言中没有默认参数和占位参数



函数重载
C++中函数名称可以重复
必须在同一个作用域内,函数名称相同

void test01() {//不在一个作用域之内 } class fun { void test01() { } };

函数的参数个数不同或者类型不同或者顺序不同
函数重载碰到了默认参数的问题,要注意二义性的问题
引用必须要引入合法的内存空间 ,const可以开辟内存空间
const也可以作为函数重载的判断条件

void  test02(int  &p) { } void  test02(const  int &p ) {}//const会开辟一个内存空间,所以在这里被接收到 test02(5)
//函数的默认参数,避免二义性
void  fun(int  a, int  c=4) { } void  fun(int a) { } fun(4);//此时有一个函数是带有默认参数的,二义性,不知道如何选择

函数重载原理:

编译器为了实现重载,编译器会用不同的参数类型来修饰不同的函数名,比如void  func(),编译器可以回将函数名修饰成_func

编译如果修饰重载并没有特同同统一的标准

 

封装:

//C++中的封装严格类型转换检测,让属性和行为绑定到一起
//属性和行为作为一个整体来表示一个事务

#include  "pch.h" #include <iostream>
using  namespace std; #include <string>

struct Person { int age; char  name[4]; void Personeat() { cout << "Person:" << name << "吃饭" << endl; } }; //定义两个结构体
struct Dog { char  name[5]; void Dogeat() { cout << name << "吃饭" << endl; } }; void test01() { Person p1;//p1只能是Person的对象,里面只有person结构体的属性和方法,没有另一个结构体的 strcpy_s(p1.name, "yun");//把这后面的字符封装进去
    p1.Personeat();//这个是好事已经在执行cout了

} int main() { test01(); }

 c++入门篇五 随笔

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄