C++复习01(重载、引用、内联函数、三大特性、题)

这篇博客主要介绍了C++中的关键概念,包括命名空间、缺省参数、函数重载、引用、内联函数和C++的三大特性——封装、继承和多态。详细探讨了引用与指针的区别,以及内联函数与宏函数的不同。还讨论了C++中类和对象的封装特性,以及如何计算空类的大小。最后,提到了结构体内存对齐的原因和规则。
摘要由CSDN通过智能技术生成

C++入门01

C++中的关键字(与版本有关)

98版-63个

命名空间:

1.什么是命名空间:一个作用域 一个班级/一个院系/一个学校
2.命名空间的作用:防止命名冲突
3.如何定义一个命名空间:namespace N1{变量、函数}
命名空间中的成员如何使用:
a.N1::成员名字:当前命名空间在内容中使用少
b.using N1::b;
c.using namespace N1;

缺省参数(相当于备胎的存在)

1.概念:如果在定义函数时,在函数的参数带上一个默认值,在使用时可以传参,也可以不传参。如果用户传递的实参,使用用户传递的实参。如果用户没有传参,则使用默认值。

2.分类:半缺省参数和全缺失参数
半缺省参数:部分参数带有默认值,注意:只能从右往左依次给出,匹配从左往右

void TestFunc(int a,int b,int c=1){}
TestFunc(1,2);    a=1,b=2
全缺失参数:所有参数带有默认值
void TestFunc(int a=3,int b=2,int c=1){}
{}

全缺省和不带类型参数不要同时存在

void TestFunc1(){}
void TestFunc1(int a=1){}  
TestFunc1();//编译失败,调用时编译器不知道应该调用哪一个

3.注意事项:
a.默认参数设置规则:从右往左依次给出
b.不能在声明和定义时同时给出 两位置默认参数给的不一致的话,编译器不知道用哪个
类似于男女朋友关系:1对1 1对多则不行
c.默认参数提供方式:常量、全局变量
d.C语言不支持

函数重载!!!!

1.概念:在同一个作用域,如果存在多个相同名称的函数,并且参数列表不同 与返回值类型是否相同无关(参数个数、参数类型、类型次序) 一词多义
对于与返回值类型是否相同无关进行解释:

int Add(int,int)
double Add(int,double)
Add(1,2);
此时编译器不知道该调用哪一个

举一个例子,后面解释均使用该例子:

int Add(int a,int b);
double Add(double a,double b);

2.调用原理:

可成功编译:
Add(1,2);
Add(1.0,2.0);

编译阶段,编译器会推演函数实参的类型,根据推演的结果选择合适的函数进行调用,如果没有合适的函数或有多个函数可以选择,编译器会报错

编译失败:
Add(1,2,3);//int int int 没有三个int类型的定义 编译报错
Add(1.0,2.0);//int double 尝试进行类型转化,转化分为两种情况: a.int int  b.double double
此时编译器不知道到底应该选择哪一个而引起二义性

3.C+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值