面向结构程序设计 VS 面向对象程序设计
衡量语言的标准:
扩展性:添加新的功能不修改之前的代码;
维护性:当出现问题能够准确定位代码;
复用性:功能代码复用
面向对象优点:扩展性好,维护性好,复用性好(保证代码功能独立性)
面向结构缺点:扩展性差,维护性差,复用性差
面向对象:解决复杂宏观的系统任务
面向结构:解决具体任务
面向对象三大特点:封装、继承、多态
C++对C的加强
- 命名空间
命名冲突:全局变量、函数
C语言解决多个文件导致的命名冲突的方法:static关键字
static
作用:
1、修饰局部变量:延长局部变量的生命周期(程序结束之后再释放)
2、修饰全局变量:被修饰全局变量,只能在本文件使用,不能在其他文件中使用
3、修饰函数:被修饰的函数,只能在本文件访问,不能在其他文件访问
C++解决多个文件导致的命名冲突的方法:命名空间
命名文件
源文件不能访问其他源文件的命名空间(命名空间中存在定义) 即时放在头文件里,然后包含之后都无法访问
命名空间名字相同,成员名字不同,那么他们会自动合并为一个名字空间,可以理解为追加
字空间名称相同,成员名称相同,那么程序会在调试过程的link时报错,因为连接器会检测倒重复定义的变量
注意事项:源文件不能访问其他源文件的命名空间;如果命名空间重名,相同成员名报错,不同成员名合并
使用:
方式1:名字::成员(单一)
方式2:using namespace 名字(全部)