C/C++培训
达内IT学院
400-996-5531
首先应该介绍的是C++的发展史,大致来讲就是一些人发现了C语言存在一些无法解决的问题,从而对其进行改进,
从“C with Class”到class="replace_word" title="C++知识库" target="_blank" style="text-decoration:none;box-sizing: border-box;color:#DF3434;font-weight:bold;">C++1.0、C++2.0等各个版本,
这里不进行赘述,有兴趣的小伙伴可以进行百度,本文主要讲述一些C++与C原因的区别,对学习过C语言后想要学习C++同学做一个引导;
注:本文使用windows32系统下的Microsoft Visual Studio 2013进行编写
1.文件名的后缀
C++的源文件使用”.cpp”文件后缀,创建时若不写后缀默认也为.cpp格式。
2.返回值
如果不写返回值,C语言中可以这样做,会返回一个int型的值,但在C++中则无法这样做,会直接拨错编译失败,因此当函数没有返回值的时候,需要显示的给出void的返回值。
3.参数列表
无参数列表时,在C语言中可以给任意多个参数,都可以接受,但在C++中,如果没有参数列表,表示该函数不接受任何参数。
4.缺省参数
声明或定义函数时为函数的参数指定一个默认值,在调用函数时,如果没有指定实参则使用该默认值,否则就会使用传进来的实参。这种方法在C++中支持,而C语言不支持。
当然,在C++中缺省参数也有半缺省和全缺省之分,顾名思义,全缺省就是所有参数都有缺省值,半缺省则只有部分参数有缺省值,这里就需要注意了,半缺省中的缺省参数一定在参数列表的尾
例如:
int FunTest(int a, int b = 0; int c)//错误写法 {} int FunTest(int a, int b; int c = 0)// 正确写法 {} int FunTest(int a, int b = 0, int c = 0)//正确写法+1 {} 123456123456
5.函数重载
C++允许在同一作用域中声明几个功能类似的同名函数,且这些同名函数的形参列表必须不同,常用来处理实现功能相似数据类型不同的问题,
例如一个简单的加法函数,想让它实现各种类型(如int,double,char)的加法,在C语言中,只能以不同的函数名来实现。但在C++中,可以使用同一个函数名。
当然这里强调的是:一定是形参列表不同,假如两个函数形参列表相同或没有参数,但他们的返回值不同,这时是构不成重载的,因为编译器并不知道应该调用哪一个函数,会造成二义性错误。
6.引用
我们在学习C语言时,知道函数传参有两种方法:值传递和址传递。而在C++中,除了指针,还有一个引用的概念,引用是给一个已经存在的变量取了一个别名,两者一定为同种类型,编译器不会给引用变量新开辟内存空间,其与引用的变量共用同一块空间。
写法为:类型& 变量=引用的变量
而其和指针又有什么区别:
指针引用
可以不初始化必须初始化
可以指向其他变量不能指向其他变量
存在NULL指针没有NULL引用
有多级指针没有多级引用
自增改变指向自增改变变量内容
引用在C++中使用较为广泛,需要在学习练习中加深理解。
7.命名空间与输入输出
命名空间(namespace)由于C++中存在大量的变量、函数和类,他们的名称都是存在于全局命名空间中,很容易形成命名冲突,因此引入命名空间的概念, 其定义了一个范围,在命名空间中定义的东西值在命名空间的范围内有效。 amespace one { int a; int b; int c; namespace two { int a; int b; int c; } } 123456789101112123456789101112 此时two中三个变量和one中的变量就会没有冲突。 除了使用命名空间,还可以导入已经存在的命名空间: using namespace std; 11 这里的std是标准命名空间,在此命名空间下,C++可以使用不同于C语言的输入输出方法: int main() { int a; cin >> a; cout << a << endl; return 0; } 12345671234567 其中cout为标准命名空间std中输出流对象,cin为输入流对象“<<”于“>>”分别为输出输入操作符,表示将后面的内容流入到相应的对象中。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved