c++入门基础知识
来源:互联网 发布:手机淘宝实人认证在哪 编辑:程序博客网 时间:2024/06/03 19:24
1、命名空间
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
标准C++引入命名空间,主要是为了避免成员的名称冲突。若果用户都给自己的命名空间取简短的名称,那么这些(往往同是全局级的)命名空间本身,也可能发生名称冲突。如果为了避免冲突,而为命名空间取很长的名称,则使用起来就会不方便。这是一个典型的两难问题。
标准C++为此提供了一种解决方案——命名空间别名,格式为:namespace 别名 = 命名空间名;
引入命名空间,通过使用namespace xxx;所使用的的库函数或变量就是在该命名空间中定义,这样才不会引起冲突
#include<iostream>using namespace std;namespace name1{int a = 3;}namespace name2{int a = 23;}int main(){cout << name1::a << endl;//::作用于解析符cout << name2::a << endl;//我们使用了相同名字的全局变量,被定义在不同的命名空间,因此没有发生重定义return 0;}
标准C++引入命名空间,除了可以避免成员的名称发生冲突之外,还可以使代码保持局部性,从而保护代码不被他人非法使用。如果你的目的主要是后者,而且又为替命名空间取一个好听、有意义、且与别人的命名空间不重名的名称而烦恼的话,标准C++还允许你定义一个无名命名空间。你可以在当前编译单元中(无名命名空间之外),直接使用无名命名空间中的成员名称,但是在当前编译单元之外,它又是不可见的。
无名命名空间的定义格式为:
namespace {
声明序列可选
}
namespace { int i; void f() {/*……*/}}int main() { i = 0; // 可直接使用无名命名空间中的成员i f(); // 可直接使用无名命名空间中的成员f()}
2、C++基本的输入输出流
cin数据的输入
cin是与标准输入设备即键盘连接的预定义输入流,它从输入流中读取数据,数据从输入提起运算符“>>”处流进程序。
输入流对象cin输出数据的语句格式为:
cin>>变量名1>>变量名2>>......>>变量名n; “>>”是输入操作符,用于从cin输入流中取得数据,并将取得的数据传送给其后的变量,从而完成输入数据的功能。 注意:“>>”操作符后除了变量名外不得有其他数字、字符串,否则系统会报错。
数据的输出cout
cout是标准输出设备即显示器(默认设备)连接的预定义输出流。C++语言的插入运算符“<<”向输出流发送字符,cout是数据的目的地,插入运算符“<<”把数据传送到cout。
输出流对象cout输出数据的语句格式为:
cout<<数据1<<数据2<<……<<数据n;
其中,“<<”是输出操作符,用于向cout输出流中插入数据。
在cout中还可以使用流控制符控制数据的输出格式,但要注意使用这些流控制符时,要在程序的开始部分嵌入头文件“iomanip.h”。
3、重载(C++为什么支持重载)
重载,简单说,就是同一作用域中,一组函数或者方法有相同的名称,但是参数列表不相同(个数不同或类型不同)的情形,返回值可同可不同,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
重载是指相同的函数名,但参数的类型或个数中只要有所不同,便进行再定义,编译之后重载的函数都具有不同的地址,也就是说虽然函数名相同,实际上是不同的函数,在调用时,编译系统会根据不同之处自动区别是调用哪一个函数。对于普通函数和后面要学的类的成员函数都适用。
从代码的编译到运行,在VC6.0或VS这种编译器下,它是系统直接完成了翻译与链接,直接生成了运行结果。
编译器内1.预处理
1)头文件展开
2)宏的替换
3)去注释
4)条件编译
2.编译过程:将高级语言转为汇编语言
3.汇编过程:汇编语言转为二进制程序
链接部分:所引用的数据链接进来部完成了翻译部分:
在c语言中没有命名修饰,同名函数会冲突
在c++中,有命名修饰,他会把每一个参数的类型或其他用一个字符串来表示加到函数名上。所以重载的两个同名函数编译出来的函数名不同,所以不冲突
在链接时,都是找名字进行链接的,就比如以上两个函数,
在C语言中两个的名字一样,就会在链接中报错。
4、C++缺省参数
缺省参数实际上就是在调用函数的时候,没有指定参数,会为函数提供一个缺省值。
缺省参数有两种类型:全缺省和半缺省
缺省参数不能出现在函数指针、函数引用以及typedef中
缺省参数可以在不同的声明中逐步给出
不同作用域的声明中定义的缺省参数是独立的,互不影响;
同一作用域的声明中不能重复定义同一个参数的缺省值。
5、指针和引用(概念,使用方法,做参数,做返回值的作用,指针和引用的区别)
指针,全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。但是使用指针会让程序的运行变得不是那么的快。
引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,通过这个别名来引用实际的变量。标准C中不支持变量的引用。 引用的格式一般为:类型& + 引用变量名= 已定义过的变量名;
引用的特点:
(1)一个变量可取多个别名
(2)引用必须初始化
引用和指针的区别和联系
(1)引用只能在定义时初始化一次,之后不能改变指向其它变量(从一而终);指针变量的值可变。
(2)引用必须指向有效的变量,指针可以为空。
(3)sizeof指针对象和引用对象的意义不一样。sizeof引用得到的是所指向的变量的大小,而sizeof指针是对象地址的大小。
(4)指针和引用自增(++)自减(–)意义不一样。
(5) 相对而言,引用比指针更安全。用只能在初始化的时候引用一次不能再定义为其他变量的别名。
指针比引用更灵活,但是也更危险。使用指针时一定要注意检查指针是否为空。指针所指的地址释放以后最好置0 ,否则可能存在野指针问题。
- c语言基础知识入门
- 【C++】Cpp入门基础知识
- 【C++】入门基础知识
- linux程序设计入门----基础知识:linux下C语言编程基础知识
- C语言入门基础知识(一)
- linux操作系统下c语言编程入门 -- (1)基础知识
- linux操作系统下c语言编程入门--基础知识
- LINUX下C语言入门系列课程-基础知识
- C 基础知识
- C 基础知识
- C基础知识
- C 基础知识
- c基础知识
- c基础知识
- c基础知识
- [C]基础知识
- c基础知识
- C基础知识
- python之sqlite3使用详解
- 无线通信芯片又一神兽诞生,中兴NB-IoT芯片朱雀7100定了
- 加载数字图片(cocos2dx)
- 几种单例模式
- IE8中parseInt的坑
- c++入门基础知识
- struts2基本输入校验
- 心之力
- CodeVS2058 括号序列 题解
- Mysql在insert触发器里如何update当前数据
- 关于Mysql 全文索引的使用
- linux 上使用commons-net.jar中 FTPClient类的listFiles、retrieveFile等方法停止不执行,出现假死状态解决办法
- 洛谷2661-tarjan-强连通分量
- redis在window下安装