C 语言是面向过程(函数式编程),C++ 是面向对象(对象式编程),如何从面向过程的思维转化为面向对象的思维呢,从以下几点可以看出端倪!
在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
学习任何一门新的语言都必须对已学过的进行思考,找出异同点,方便学习新语言的特性。
C++的意思:C plus plus。
C++是完全兼容C语言的,其中很多特性都能体现出来。
C:.c stdio.h printf scanf 函数无重载,且结构体不能为空 过程。
C++:.cpp iostream(引入命名空间) cout cin 有重载,且类可以为空 强调的是对象。
C程序:
#include<stdio.h>
void main(void)
{
int i = 10;
printf("i = %d\n", i);
}
C++程序:
#include<iostream>
using namespace std;
int main(void)
{
int i = 10;
cout<<i<<endl;
}
C++的输出不强调输出的格式,由编译器自动识别,以endl回车换行。
- 建立的文件类型不一样,C语言为.c, C++为.cpp
- 引入的头文件不一样
- C++有命名空间
- 输入输出的语句不一样
- C语言不允许重载,C++可以进行重载
- 自定义类型不一样,C语言使用struct,C++使用class
- C++语言有逻辑数据类型bool
- C语言的变量必须放到:所有有效语句之前;
- C++语言在何时用到变量,在定义,比较符合人文化。
C function 函数 + 算法:编程强调的是实现的过程。
C++ 因为其完全兼容C,其定义变量并不像java一样,全部都是对象,int i;这只是普通的变量,所以C++是一门基于面向对象的语言。
对象+对象+.................+算法
谈C++一切都要用对象,编程强调的是对象怎么了,一切围绕对象;
#define AAA
#ifdef AAA
void fun(){}
#else
void fun(){}
#endif
#include<iostream>
using namespace std;
namespace MySpace{
void fun(){
cout<<"This MySpace"<<endl;
}
};
namespace YouSpace{
void fun(){
cout<<"This YouSpace"<<endl;
}
};
using namespace MySpace;
int main(void){
fun();
return 0;
}
(左神算法课程)
这就是通过命名空间解决了函数一样的调用问题,当然,命名空间的本质及用法对自己刚接触C++,还不是很清楚。
如果在文件iostream中没有引入命名空间,就得由我们自己手工写std;
std::cout<<"namespace std"<<std::endl;
原创文章链接:从C语言如何过渡到C++