c++之初体验——函数重载,引用,命名空间
来源:互联网 发布:一个淘宝号最多刷几单 编辑:程序博客网 时间:2024/06/07 16:53
初学c++,我们首先要了解的是c++和之前所学习的c的区别。作为面向过程和面向对象两个不同的编程语言,在很多方面它们都是类似的,但是也有一些不同。这篇文章,我会就我的理解作出一些说明。
1.返回值。c++和c第一个不同之处在于返回值的不同,在C里,如果一个函数没有指定返回值类型,那么他返回的是一个int型,而C++里,同样的情况下返回值必须要指定为void型,否则编译不会通过(此处测试软件为VS2016)
2.缺省参数。缺省参数是指在声明或者定义的时候为函数参数制定一个默认值,这个值在函数被调用的时候使用。缺省参数分为全缺省和半缺省。此处需要注意的是,缺省参数必须要慎用,一旦使用不当容易产生二义性。缺省函数只在C++中使用在C++中不被认可。
(1)缺省值必须是常量或全局变量
(2)带缺省值的参数必须放在参数表的最后面
(3)它不能同时出现在声明和定义中,二者选其一
3.函数重载。C++可以在同一个作用域中出现名字相同,参数列表(个数,类型,顺序)不同的函数,它被叫做函数重载。函数重载和函数返回值类型无关。函数重载是C++中的一个重点,在以后的博客中,我会再进行总结。
4.引用和指针。指针在C和C++中都有广泛的运用,此处指针不作具体说明,重点强调引用。
引用就是给变量起了一个别名,编译器不会重新开辟空间,引用对象和被引用对象共同使用一段内存空间。
类型 & 变量=被引用变量名
引用的使用有几个需要注意的地方:
(1)一个变量可以有多个引用
(2)引用一旦声明以后不能被更改,即不能再作为其他变量的引用
(3)引用在使用时必须初始化
(4)引用可以作为函数参数
(5)引用可以作为函数返回值,要保证函数的生命周期,必须比main函数长,否则编译不能通过。
5.类和结构体。C中,struct是结构体的关键字,可以被声明为变量,指针或数组,可以实现较为复杂的数据结构。结构体用来实现数据的封装,让操作更安全。C语言中的结构体类比到C++中就是类,将结构体进行扩充可以实现类,类有三种访问权限,分别为public,protect,private。类中默认的成员访问权限是private,而结构体中是public。C++中的结构体声明不必有struct关键字,而C语言中必须有。
6.命名空间。C没有而C++有,C++引入命名空间主要是为了避免命名冲突(命名污染)它在使用时会定义一个新的作用域。
使用:
(1)N1::a;
(2)using N1::a;
(3)using namespace N1;
命名空间的使用必须注意作用域
- c++之初体验——函数重载,引用,命名空间
- 命名空间,重载,指针与引用
- c++ 基础知识(输入输出、namespace命名空间、引用、函数重载模版、内存管理)
- C++ STL之命名空间、函数模板、类模板
- c++基础知识(命名空间、输入输出流、重载、缺省、引用)
- SpringSecurity学习【命名空间初体验】
- 重载与命名空间
- C++——命名空间namespace
- C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
- 引用自定义命名空间
- 命名空间的引用
- 体验数学之美——空间
- C#-—体验抽象函数
- 细嚼慢咽C++primer(3)——引用形参,内联函数,重载函数,指向函数的指针
- 【C++】基础知识—与C语言关系、命名空间
- Spring(04)——p命名空间和c命名空间
- as3中命名空间——命名空间名称限定符引用的一些注意的问题
- 【C/C++学院】0813-C与CPP不同以及命名空间简介/函数重载与函数默认参数/泛型auto/Newdelete
- hiho一下 第166周 逃离迷宫
- Android Studio中关于Java的单元测试
- Nginx Http服务器
- 得到交替排列形式字符串
- 操作系统知识
- c++之初体验——函数重载,引用,命名空间
- python7
- 环境变量的作用
- 基于前端Js模块化规范的粗浅应用
- MUI-不常用组件复习
- RSSI和802.11协议帧
- 帧同步扫盲帖
- win10构建ftp服务器
- 算法竞赛_子序列之和_C++