命名空间,重载,指针与引用
来源:互联网 发布:电工鞋 绝缘鞋 知乎 编辑:程序博客网 时间:2024/05/17 21:50
1.命名空间:
在一个给定的作用域中第一的名字在改作用域中必须是唯一的,对于庞大的,复杂的程序而言,这无疑很难满足。也是我们自己可以做到不是用重复的名字,但是在实际工作中,在一个项目里,不仅仅有你个人的代码,而且还有你的团队其他人的代码,这就是一个很大的问题,一旦名字冲突就会做成很多问题。我们将这样由名字冲突问题称为命名空间污染。一般情况我们我们都会将名字设置的更长一些,或者用下划线之类的东西加以区分,但是这样的使我们在编写和使用时很麻烦,而命名空间为这个问题提供了很有效的机制。每个命名空间都是一个独立的域,但是在不同的命名空间里,可以出现重复的名字,这样就很好的解决了上述的问题。
命名空间的定义:
命名空间定义以关键字namespace开始,后面接命名空间的名字。如下:
如上图所示,在命名空间A和命名空间B中都有变量a,并且都有一个类A和他的默认构造函数,这里编译也不会有任何问题,因为这两个不在同一个域内,所以并不会有名字冲突的问题存在。当我们要使用命名空间的成员时,可以中作用域符加在成员前,但这样很麻烦,所以又提供了一种方式来获得我们在命名空间的名字,using namespace +空间名字来访问。如下:
2.c++基本输入输出流:
c++并没有直接定义进行输入输出的的任何语句,这种功能是由标准库提供的,即我们经常使用的iostream库。下面简单的使用cin ,cout。
3.重载:
重载的定义:1.相同的作用域 2.函数名相同 3.参数不同
c++支持重载的原因:函数名的修饰规则。
4.指针与引用的区别:
下面我们通过一个简单的小程序来看一下汇编是怎么做的:
下面时指针和引用在作为函数参数进行时的区别:
void Swap(int* a, int*b){int temp = *a;*a = *b;*b = temp;}int main(){int a = 10;int b = 20;cout <<"a= "<<a<< " " <<"b= "<< b << endl;Swap(&a,&b);cout << "a= " << a << " " << "b= " << b << endl;return 0;}
从上面的结果可以看出指针,可以改变实参的值,其中通过解引用*来访问到实参在内存的存储单元从而改变实参的值。但是有时候指针也不是那么好用,如下面代码所示:
void text1(int *p) { int a = 10;p = &a;}void text2(int &p){p = 20;} int main(){int a = 10;//指针传参int *p1 = &a;text1(p1);cout << "指针传参:" << a << endl;//引用传参int &p2 = a;text2(p2);cout << "引用传参:" << a << endl;return 0;}
这里可以看出,指针并没有达到想要的结果,因为这里是值传递形参只是一份临时拷贝。而引用则得到了想要的结果,因为实际上传递的是实参本身,并没有临时拷贝,这里引用既节省了空间,也节约了时间。是很好的手段,在递归中,引用的使用就很方便了。
- 命名空间,重载,指针与引用
- 命名空间,输入输出流,为什么支持重载,缺省,指针与引用
- 重载与命名空间
- C++的命名空间、输入输出、重载、指针和引用的相关概念
- 命名空间,输入输出流,重载,缺省参数,引用和指针区别
- 超前引用与命名空间
- 重载与命名空间(学习笔记)
- c++基础知识(命名空间、输入输出流、重载、缺省、引用)
- using命名空间与引用程序集
- C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
- 引用自定义命名空间
- 命名空间的引用
- 关于c++的引用变量与命名空间
- c++ 基础知识(输入输出、namespace命名空间、引用、函数重载模版、内存管理)
- c++之初体验——函数重载,引用,命名空间
- C# 不能引用命名空间
- 引用xml命名空间问题
- java命名空间与命名
- 深度学习之循环神经网络
- Java中的初始化过程
- Z
- 线段树
- Content Tree Word Embedding for document representation
- 命名空间,重载,指针与引用
- CentOs下yum不能使用的解决办法
- EasyPlayerPro(Windows)开发系列之解决ffmpeg接口调用卡住的问题
- C语言中宏定义方法
- 校内的hu测(10.5)
- 动态规划:01背包
- 深入hibernate的三种状态
- 深度学习(参数选择)
- win7相关问题解决