手记

C和C++体系图,C/C++对比学习

1、在C++中,一个程序通过g++的编译器的进行四步:

预处理  g++ tect.cpp -o test.i  -E

  编译     g++ test.i -o test.s      -S

  汇编     g++ test.s -o test.o     -c

链接     g++ test.o -o test

其后执行语句: ./test

2、C和C++的关系:

学习任何一门新的语言都必须对已学过的进行思考,找出异同点,方便学习新语言的特性。

C++的意思: C plus plus

  C++是完全兼容C语言的,其中很多特性都能体现出来。

C:    .c          stdio.h                              printf  scanf   函数无重载,且结构体不能为空        过程

  C++:  .cpp      iostream(引入命名空间)     cout    cin       有重载,且类可以为空               强调的是对象

C程序:

#include<stdio.h>voidmain(void){inti=10;printf("i = %d\n",i);}

C++程序:

#include<iostream>usingnamespacestd;intmain(void){inti=10;cout<<i<<endl;}

C++的输出不强调输出的格式,由编译器自动识别,以endl回车换行。

3、C和C++的简单区别:

  (1)、建立的文件类型不一样,C语言为.c, C++为.cpp

  (2)、引入的头文件不一样

  (3)、C++有命名空间

  (4)、输入输出的语句不一样

  (5)、C语言不允许重载,C++可以进行重载

  (6)、自定义类型不一样,C语言使用struct,C++使用class

  (7)、C++语言有逻辑数据类型bool

4、C和C++的编译识别:

  C语言的变量必须的放到:所有有效语句之前。

  C++语言在何时用到变量,在定义,比较符合人文化。

5、C和C++的编程思想:

C function 函数 + 算法编程强调的是实现的过程

C++ 因为其完全兼容C,其定义变量并不像java一样,全部都是对象,int i;这只是普通的变量,所以C++是一门基于面向对象的语言。

  对象+对象+.................+算法

谈C++一切都要用对象 编程强调的是对象怎么了,一切围绕对象;

6、在C++中对于多个完全相同函数的简单识别方法:

  (1)、利用条件宏

#defineAAA#ifdefAAAvoidfun(){}#elsevoidfun(){}#endif

  (2)、利用命名空间加以解决:

#include<iostream>usingnamespacestd;namespaceMySpace{voidfun(){cout<<"This MySpace"<<endl;}};namespaceYouSpace{voidfun(){cout<<"This YouSpace"<<endl;}};usingnamespaceMySpace;intmain(void){fun();return0;}

这就是通过命名空间解决了函数一样的调用问题,当然,命名空间的本质及用法对自己刚接触C++,还不是很清楚。

如果在文件iostream中没有引入命名空间,就的由我们自己手工写std;

std::cout<<"namespace std"<<std::endl;

如果喜欢,想了解更多知识,请关注公众号,每天进步一点点

C/C++知识体系思维导图



作者:hj_703a
链接:https://www.jianshu.com/p/74e607346ca0


3人推荐
随时随地看视频
慕课网APP