如何从C快速过渡到C++
1.C和C++的区别:
- C语言可以在C++编译器上完美运行,即C属于C++
- C++比C多出来一些函数库
- C++是面向对象编程(即有class以及相关工具)
2.如何从C过渡到C++
2.1 代码实例:(C语言版)uva11000.
#include<stdio.h>
int main()
{
long long m = 0, fm = 1, sum = 1;
int n,i;
while(scanf("%d",&n),n != -1){
m = 0, fm = 1, sum = 1;
for(i = 0;i < n;i++){
fm = m + 1;
m = sum;
sum = m + fm;
}
printf("%lld %lld\n",m,sum);
}
return 0;
}
重点不在于解上面这题,请将重点放在写法。以上是C语言写法,为什么说是C语言写法呢?因为上述代码有几个C独有的特点:
- 第1行:#include<stdio.h>
- 第5行:scanf("%d",&n)
- 第13行:printf("%lld %lld\n",m,sum);
这三点也是C和C++最基本的区别,下面看C++版本:
#include<iostream>
using namespace std;
int main()
{
long long m = 0, fm = 1, sum = 1;
int n,i;
while(cin >> n,n != -1){
m = 0, fm = 1, sum = 1;
for(i = 0;i < n;i++){
fm = m + 1;
m = sum;
sum = m + fm;
}
cout << m << " " << sum << endl;
}
return 0;
}
- 第1行:#include<iostream>
- 第2行:using namespace std;
- 第6行:cin >> n;
- 第14行:cout << m << " " << sum << endl;
- 其中第1行头文件iostream,和C语言中的stdio.h类似,可以对比理解。
- 第2行的using namespace std 的意思是声明使用命名空间std。可以不深入理解,只要写C++就敲这一行就可以了。(想了解的直接百度就可以,很简单)
- 第6行:cin全名叫 标准输入流。和C语言中的scanf用法类似,只是它用起来更为方便(大多数情况下),不需要区分不同的类型用不同的写法,所有类型只需要用cin >> (变量名)就可以了。
- 第14行:和cin类似,cout是标准输出流,与C中的printf类似,但是它也不用区分不同的类型用不同输出符号,不管什么类型只要用cout << (变量名) 就可以了。其中endl相当于C语言中的 ‘\n’ 换行符。
2.2 初步掌握C++:
如果你已经明白上面4个C++的特点的话,那现在你用C编写代码有多顺畅你用C++就可以同样顺畅了。因为其他写法(for、if、else……)和C完全相同。
3.如何利用C++的优点(提高):
一开始就提到,C++和C的不同在于C++丰富的函数库,其中最方便的是STL(一个库名)。很多书会讲这一个库单独拿出来讲,其中包括一些非常方便的容器(vector、map),现在看不懂也没关系,这个是需要花时间学的。从C过渡到C++只需要一个下午(C基础好),但是学会使用C++的各种函数,需要花很久。
4.推荐书籍:
个人入门用的是《C++ primer plus》第六版。这本书很厚,但是不需要看完,就像用字典一样看它就可以(用来看各种函数定义)。然后是提高,建议买一本专门讲STl的书来深入掌握STL,因为它真的很重要。