zoukankan      html  css  js  c++  java
  • 如何从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
    ",m,sum);
    	}
    	return 0;
    }

    重点不在于解上面这题,请将重点放在写法。以上是C语言写法,为什么说是C语言写法呢?因为上述代码有几个C独有的特点:

    • 第1行:#include<stdio.h>
    • 第5行:scanf("%d",&n)
    • 第13行:printf("%lld %lld ",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. 其中第1行头文件iostream,和C语言中的stdio.h类似,可以对比理解。
    2. 第2行的using namespace std 的意思是声明使用命名空间std。可以不深入理解,只要写C++就敲这一行就可以了。(想了解的直接百度就可以,很简单)
    3. 第6行:cin全名叫 标准输入流。和C语言中的scanf用法类似,只是它用起来更为方便(大多数情况下),不需要区分不同的类型用不同的写法,所有类型只需要用cin >> (变量名)就可以了。
    4. 第14行:和cin类似,cout是标准输出流,与C中的printf类似,但是它也不用区分不同的类型用不同输出符号,不管什么类型只要用cout << (变量名) 就可以了。其中endl相当于C语言中的 ‘ ’ 换行符。

    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,因为它真的很重要。

  • 相关阅读:
    关于TextField
    判断一个显示对象是否移除
    不争气的Discuz!NT 3.6和MVC3整合,主要实现同步登录和注册,登出。
    我的博客是英文的
    TFS不提供 Team Foundation 服务的解决办法。
    四 为提高entity framework 性能,要注意哪些事情.
    三 EF 和ado.net 的性能对比.
    一 关于大项目的经验总结
    在.net 中,ajax 如何调用本页数据源
    关于有序guid 的使用
  • 原文地址:https://www.cnblogs.com/long98/p/10352237.html
Copyright © 2011-2022 走看看