知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

C++程序设计

发表时间:2022-03-25来源:网络

C++程序设计

  之前学过C++课程,但是时间有点久,忘了很多,这里做一个简单的回顾。

  网站推荐: C++在线编译器

  学习C++之前,您可以先了解C语言。

  c++的扩展名一般为cpp(cplusplus)。

  补充: 这里介绍了如何编译和执行C++文件,即一般需要下面的步骤:

在文件的外面shift + 右键单击,选择cmd打开文件(cpp的外层文件)

g++     文件名.cpp      -o       test

test 

  通过这三步就可以编译C++文件了。

  注意:1. 每次如果修改了文件,都需要在g++ 文件名.cpp -o test来重新编译文件得到文件名.exe可执行文件,然后在执行即可。这时新的可执行文件就可以覆盖旧的可执行文件。

       2. 在notepad++中的设置-> 语言设置中将语言设置为C++

第一部分: 面向对象程序设计概述

1 面向过程的程序设计和面向对象的程序设计

  面向对象程序设计面向过程程序设计有着本质的区别。

  面向过程程序设计是以功能为中心,数据和操作数据的函数(或过程)相分离,程序的基本构成单位是函数

  而面向对象程序设计是以数据为中心,数据和操作数据的函数被封装成一个对象,与外界向分隔,对象之间通过消息进行通信,使得各对象完成相应的操作,程序的基本构成单位是对象

简单地说,面向过程的程序设计是以函数为基本构成单位; 而面向对象的程序设计是以对象为基本构成单位。

   

 

2. 为什么C++是面向对象的程序设计? 面向过程的程序设计有什么不足呢?

面向过程的程序设计是围绕功能进行的,用一个函数实现一个功能。 所有的数据都是公用的,一个函数可以使用任何一组数据,而一组数据又可以被多个函数所使用。 当程序规模较大时、数据很多时,程序设计者往往感到难以应付。 所以面向过程的程序设计往往只适用于规模较小的程序。

面向过程的程序设计其数据是公有的,谁也没有办法限制其他的程序员不去修改全局数据,也不能限制其他程序员在函数中定义与全局数据同名的全局变量,故很不安全。

由于面向过程程序设计的基本单位是函数,所以代码重用的最大粒度就是函数,对于今天的软件开发来说,程序修改的难度很大。

基于以上面向过程的程序设计的不足,人们提出了面向对象的程序设计。

 

 

 

 3. 面向对象的编程思想

(1)客观世界中的事物都是对象(object),对象之间存在一定的关系。

(2)用对象的属性(attribute)描述事物的静态特征,用对象的操作(operation)描述事物的行为(动态特征)。

(3)把对象的属性和操作结为一体,形成一个相对独立、不可分的实体。对象对外屏蔽其内部细节,只留下少量接口,以便和外界联系。

(4)通过抽象对对象进行分类,把具有相同属性和相同操作的对象归为一类,类是这些对象的描述,每个对象是其所属类的一个实例。

(5)复杂的对象可以使用简单的对象作为其构成部分。

(6)通过在不成程度上运用抽象的原则,可以得到一般类和特殊类。特殊类可以继承一般类的属性和操作,从而简化系统的构造过程。

(7)对象之间通过传递消息进行通信,以实现对象之间的动态联系。

(8)通过关联表达类之间的静态关系。

 

4. 面向对象的基本概念

  1. 对象

  从现实角度来说, 现实世界中的任何一个事物都可以看做一个对象,如汽车、房屋等,这些都是有形的;又如文章、计划等,这些都是无形的。对象有大有小,如一个军队是一个对象,一个蚂蚁也是一个对象。

  任何一个对象都具有两个基本要素:属性和行为。属性是用来描述对象的静态特征。行为是用来描述事物的动态特征。 如一个人是一个对象,其身高、性别就可以看做属性,其可以走路、说话、打球就可以看做其行为。

  且在对象之间一定要有联系,如电视这个对象被人这个对象按了一下开机按钮, 电视这个对象就开机了,这就是对象与对象之间的联系。

  总结:对象具有表示静态特征的属性和表示动态特征的行为,对象与对象之间需要传递信息来联系。

  

  2. 

  类是对客观世界中具有相同属性和行为的一组对象的抽象,它为属于该类的全部对象提供了统一的对象描述,其内容同样包括对象和属性。

  那么什么是抽象呢? 抽象就是指忽略事物的非本质特征,只注意那些和当前目标有关的本质特征,从而找出事物的共性。比如人就可以看做一个类,即人类,其中他是世界上所有实体人如张三、李四、王五的抽象。

  总结:类是对象的抽象,而对象则是类的实例,或者说是类的具体表现形式。

  

  3. 封装

  日常生活中的封装很多,如录像机,从外面来看他就是一个黑盒子,在他的表面有几个按键,而其内部的电路板和机械控制部件在外面是看不到的。

   这样做的好处在于大大降低了人们操作对象的复杂程度,使用对象的人完全不需要知道对象内部的具体细节,只需要了解其外部功能即可自如地操作对象。

  在面向对象方法中,所谓“封装”即包括两方面的含义:(1)用对象把属性和操纵这些属性的操作保证起来,形成一个基本单位,各个对象之间相互独立,互不干扰; (2)将对象中某些部分对外影藏,即影藏其内部细节,只留下少量的接口,以便于和外部联系,接受外界的消息。 

 

   4. 继承

  所谓继承是特殊类自动地拥有或者是隐含地复制其一般类的全部属性和操作。

  集继承具有‘是一种’的含义,如卡车“是一种”汽车,“轿车”是一种汽车,二者作为特殊类继承了一般类 --汽车类的所有的属性和操作。

  我们也可以一个特殊类继承多个一般类,这就是多继承的概念。如继承了“销售”类和“经理”类就是“销售经理”。

  C++提供的继承机制,就可以很方便的在一个已有的类的基础上建立一个新类,这就是常说的“软件重用”的思想。

 

  5. 消息

   对象之间通过消息进行通信,实现了对象之间的动态联系。 在C++中,消息就是函数调用

  

  6. 关联

  关联是两个多多个类之间的一种静态关系。 如一个教室类可以管理一个学生类

 

  7. 组合

  组合描述的类和类之间的整体和部分之间的关系。如汽车和发动机之间的关系就是组合。 其实,组合是关联的一种。

  

  8. 多态性

  如某个董事长出差,他把这个消息告诉了身边的人: 妻子、司机、秘书。 这些人听到之后会有不同的反应:他的妻子给他准备行李、秘书为他确认考察地安排住宿、司机会为他准备车辆。 这就是多态

  在面向对象方法中,所谓多态性是指由继承而产生的相关而不同的类,其对象对同一个消息会做出不同的响应。 

      

 

第二部分:基础知识

1. C++是什么?

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。

C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。

C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++

C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。

      

2. 基本结构

#include using namespace std;
// mainint main () { cout
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜