语言特性:面向过程、面向对象
面向过程(C、C++)
- 从上而下,从整体到细节,逐步求精
- 公共的部分->函数,复杂数据->结构体
- 按照前后顺序的一步一步把问题拆分解决
基于对象(C++)
- 封装:把一些成员变量与成员函数(方法)封装在一个类中,当需要实现一些功能的时候通过定义一个对象来调用类的成员(变量、函数),这种方式就叫做基于对象的程序设计
面向对象(C++)
- 继承:子类继承父类,子类拥有父类的所有属性与方法,同时子类也可以加一些自己特有的方法与属性
- 多态:父类指针指向子类对象,会根据子类的不同调用不同的子类方法
基于对象与面向对象的关系
- 基于对象的程序过程中,使用了继承与多态性,从而使基于对象变成面向对象
面向对象的优点
- 易于维护,每个类管理自己的接口
- 易扩展,通过继承成为其子类可以获取原有的功能,在原有功能上新增加功能,不用修改原有的代码
- 模块化,通过设置访问级别,保护了数据安全
工程构成
解决方案
- 一个解决方案,一个配置文件,包含若干个项目
- 一个项目,生成一个可执行程序
- 项目必须隶属于一个解决方案,创建项目必须先创建一个解决方案
工程文件
- 一个项目中包含多个.cpp (源文件)和 多个.h(头文件)
- 源文件后缀 .c .cpp .cc .cxx .m .mm
- 头文件后缀 .h .hpp(定义与实现在一起,减少编译次数)
- 头文件包含 #include<stdio.h> --> #include
最简单的C++程序 - main()
int main()
{
return 0; // main() 中返回值一般表示状态,返回0表示成功,非0一般表示有些错误
// windows下,一般没有用
// linux下,有些用处
}
可移植性
- 编译型语言,需要编译过程,编译成二进制文件(可执行文件),执行速度快。
- 解释性语言,不进行预先编译,先解释,再运行,执行速度慢。
- 多个源文件 >> 编译 >> 生成多个目标文件 ,多个目标文件 >> 链接>> 生成一个可执行文件
- 可执行文件win下与linux下不兼容,源代码是兼容的