C++学习001:对象、可扩展性、编译型语言、相较于C的变化

1.面向对象、基于对象、基于过程的区别

基于过程:从上到下依次执行,C语言
cpp额外实现了基于对象和面向对象
基于对象:类作为结构 类的成员作为对象 基于对象就是通过封装对象方便了程序过程中发生的突发事件·
面向对象:在基于对象的基础上。新增了继承和多态等一系列新特性
继承:子类实现父类的部分或者所有方法,基于访问作用域
多态:子类重写父类方法

2.可扩展性以及项目结构

总体结构;解决方案solution->项目project(每个项目可以生成一个可执行文件,不同文件不互通)->.h/.cpp源文件
其中.h作为头文件用作声明
.cpp作为源文件在不同platform出现形式不同,也可能是.c或者是.cc或者是.m .mm等等,但总体都是作为源文件出现
部分项目是不区分头文件和源文件,直接作为.hpp存在
因此由于源文件相同,在各个平台会被编译为不同的过程实现二进制文件

3.编译型语言和解释型语言

编译型语言:先被编译为机器语言,直接执行机器语言,速度更快
例如在Unity编译过程中,开启了IL2CPP编译,会将C#代码通过预处理和代码裁剪经过预定义的规则生成cpp代码,cpp代码经过LLVM/Clang预编译、语法树、解释成IR语言、后将IR语言转化为.o目标文件,.o文件经过链接生成mach-o文件,即IOS的可执行文件。执行效率更搞笑
解释性语言:例如lua和python语言,在执行时需要边解释边执行。常见的执行方法是需要一个虚拟机来进行解释执行对应的方法,或者直接找到内存地址然后call

4.Cpp相较于c头文件的变化

cpp的#include 相较c的stdio.h 一般需要去掉.h并在开头加上c,即include cstdio。其是作为增强版的形式,适用于cpp。

猜你喜欢

转载自blog.csdn.net/TongOuO/article/details/129540160
今日推荐