C++的第一个程序(4)

C++的写法

 区别:

1、C通过标准输入输出函数printf完成输出,C++通过cout类完成输出

2、iostream.h是老版本的C++,现在的C++替换成不使用后缀.h的头文件

3、命名空间用来解决标识符冲突问题,使用某个命名空间就可以直接使用它定义的标识符

拓展:

1、C++依然可以使用C的库函数

2、using namespace std;是表明使用 C++的标准程序库命名空间,可以省略,但是cout需要加命名空间前缀

PS:std加两个冒号 

using namespace std;语句可以写在函数体内(略有区别)

 还可以直接引入cout

std命名空间里还有一个endl的换行标识符,可以代替'\n'的换行转义字符

 面向对象编程思想

并非代替结构化编程思想,主要有抽象、封装、继承、多态

1、抽象:把现实生活中的事物的属性、行为提取出来的过程,比如一辆汽车有品牌、车型、颜色、价格、车牌等等,这些是状态,属于静态的属性。车还具有启动、运行、转向、刹车等等行为,这个属于动态的行为。当然,事务的属性应该是无穷无尽的,把系统关心的静态属性和动态行为提取出来,就形成了一“类”事务——这就是类的概念。静态属性称为成员变量,动态行为称为成员函数。当然,类是无法实现具体动作的,需要实例化,比如张三去上课了等等,类的实例化称为对象。类与对象则是模型与产品的关系,模型提供共性,产品又在共性的基础上具有自己的个性。比如人都有姓名,张三和李四的姓名则是他们自己的个性了。

2、封装:结构化编程遇到的最大问题是数据的种类越来越多,复杂性越来越高。任由功能模块对数据进行无限制的处理,会导致功能模块设计越来越复杂。数据的封装限制数据使用的范围和权限,降低复杂数据对功能模块的影响,举一个简单的例子:去商场买东西付账的时候,你不会直接把钱包给营业员,而是自己来操作。所以钱包里的钱出现问题可能性最大的是自己的操作失误。

3、继承:在抽象里,有了类的概念,当然离不开继承,现实生活中的事务本能就具有继承的层次:人-》学生-》大学生等等,一层一层地继承父类的属性和行为,又开发出自己的新的属性和行为

4、多态:具体而言就是同一类的对象可以有不同的行为,这应该是一个不容易理解的概念。

 A、先解决一个问题:对于一个派生类(继承者)的对象,能不能视为一个父类的对象呢?当然可以,一个大学生,当然是学生,也当然是人!所以,把派生类提升一级那么就可以理解了,张三小学生(小学生也是学生的派生类),李四大学生,两个学生都学习,那么他们的行为就可以不同了。

B、还有一个更头疼的问题:为什么要这样,或者说这样做有什么好处?还是举个例子:U盘、USB的键盘、鼠标都可以理解为USB设备的派生类,在电脑上提供了一个USB设备的统一接口(把:U盘、USB的键盘、鼠标等等都看成父类USB设备),这样与不同派生类对象进行不同方式的的数据交换。(这个例子属于接口的概念,与多态的概念类似,不妥)

总之,面向对象编程是在结构化编程的思想上发展起来的,并非进行完全替换!最大的区别是结构化编程从系统功能的着手,更注重动态的行为(算法),而面向对象思想则从事物的特征(数据结构)出发,更接近人们解决问题是思路。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值