C/C++/Linux学习路线同时进入另一个板块,C++路线,这里先从C过度到C++。ok废话不多说。开始进入C++,首先让我们来看C和C++的不同:


    1、首先来说。源文件的后缀名不一样,一个是.c一个是.c++。有人就会说了,我过去写C语言程序的时候都是.cpp的源文件,ok这样写呢,没有没有错,但是你写的不是纯c语言程序,由于C++是全面兼容c的所以你才可以这样写,但是这两者是不一样的。

    2、再就是引入的头文件不同。在c语言中我们经常会看到这个头文件#include<stdio.h>对吧?这个是至少包含的,标准输入输出文件,在c++中用的是#include<iostrem.h>或者#include<iostrem>现在应该见的大多数是不带.h。带.h是比较早的版本,建议大家用不带.h的版本。

    3、引入的标准输入输出文件不同,那么标准输入输入的方式也就不一样,在c语言中我们常用scanf和printf 而在c++中我们用cin和cout,这两者主要一个区别就是cin和cout方便啊,scanf和printf输入输出都需要格式化输入输出,好麻烦,但是cin和cout就不用直接输入。

    4、C++支持命名空间,什么意思呢?按照我的理解就是在开发大型程序时,会不同人开发的程序,开发同一个功能模块时,就会出现相同函数名,当引入了命名空间后就会解决这个问题。至于为什么可以,这里先不解释,后边用一个专题专门总结。

    5、c语言需要把所有变量定义放在函数开头,而c++中允许边定义边使用。有人也会说,不啊,我写的程序就可以。No,我觉得你写的应该不是纯c语言程序,不信你用IDE分别建立一个纯c语言源文件和一个cpp源文件,测试以下程序:

#include<stdio.h>
void main(void)
{
	int a = 10;
	int b = 20;
	printf("a = %d,b = %d\n",a,b);
	int c;
	c = 30;
	printf("c = %d\n",c);
}

同一段代码,你放在纯c语言程序下,编译都不能通过,会提示c未定义标识符,就是相同的程序,直接放在c++文件就可以执行。

    6、c++支持函数重载,重载是什么意思呢?

      函数重载:

          就是说函数的名字一样,但是函数的参数不一样,可以是参数的个数,参数的数据类型,形参顺序

     函数重载的要求:

            a、函数的形参个数 b、函数的形参顺序 c、函数的形参数据类型 至少有一个不同

注意:

    a、如果两个函数只是函数的返回值不一样,其他都一样,这样是构不成函数的重载的,在编译时会报错。

    b、功能一样时,只是参数不同时,可以采用相同的方法名,系统会根据函数的参数自动识别。

前边不是提到了命名空间啊,为什么又要用这个呢?我个人觉得,命名空间是解决不同人开发的的程序的函数名相同的,而函数重载是解决同一个人写的程序函数名相同的,当然这句话只是片面的理解,但是作为入门我觉得就可以这样理解,当弄明白了命名空间的作用和函数重载的作用,两者的区别自然而然就出来了。

    7、c语言不允许空的结构体c++允许,而c++允许,这个可以自己下去测试(注意前提你建立的是一个纯c的源文件)    

    8、c++采用class自定义类型定义结构,而c语言用struct,这两者在c++中都是基本一样的,主要区别就是:

    (一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;

  (二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。

最重要的区别是

    9、最主要的区别,这两者还是不同的语言,c是面向过程的,而c++是面向对象的,尽管说c++是兼容c的,但是这两者是有本质性的区别的。



    ok以上就是我总结的一些入门时关于c++与c的不同,接下来就进入c++的学习。