首页 > 编程语言 >c++语言程序设计第一章笔记

c++语言程序设计第一章笔记

时间:2023-02-02 21:14:45浏览次数:41  
标签:对象 程序 c++ 第一章 面向对象 程序设计 数据 源程序

在最开始,老师就向我们介绍了计算机语言的发展历史。

也就是先前,在计算机刚开始发展的时候,那时候计算机语言与自然语言之间具有很大的鸿沟(计算机只能读懂二进制的0和1),比机器语言更接近自然语言的便是汇编语言了,这两者都是低级语言。而我们所学习的c语言,c++等等都为高级语言,他们都具有更加贴近人类自然语言的特点,因此在初中甚至更低级的学府也有学生能够学习它们。

 

面向对象的语言:

出发点:

  更直接地描述客观世界中存在地事物(对象)以及它们之间的关系。

特点:

  1.是高级语言。

  2.将客观事物看作具有属性和行为的对象。

  3.通过抽象找出同一类对象的共同属性和行为,形成类。(就好比打球这一类,有篮球,乒乓球等等不同)

  4.通过类的继承与多态实现代码重用。(就像c++中的stl库,我们可以直接使用其中的库函数)

优点:

  使程序能够比较直接地反映问题域地本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。

  (简而言之,就是让事情的实现更加能被人类接受)

 

最早的程序:

  目的:用于数学计算。

  主要工作:设计求解问题的过程。

  缺点:对于庞大、复杂的程序难以开发和维护。

 

面向过程的结构化程序设计方法:

设计思路:

  自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。(就如同c++中使用函数模块化)

程序结构:

  按照功能划分为若干个基本模块。(模块之间功能上相对独立,内部均是由顺序、选择、循环三种基本结构组成)

优点:

  有效地将一个较为复杂地程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

缺点:

  可重用性差(数据和处理数据的过程分离为互相独立的实体)

  数据安全性差(数据结构改变时,所有相关的处理过程都要进行相应修改)

  难以开发大型软件和图形界面的应用软件

说它 有效....便于开发 是因为在当时那个年代这种方法是有效的,但是随着数据范围的提高等等原因,结构化程序的弊端就出现了。

 

面向对象的方法:

  对象:将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体。(对象与对象之间通过消息进行通信)

  类:对同类型对象出其共性。

  外部接口:类通过它与外界发生关系。

  优点:

      程序模块间的关系更加简单,程序模块的独立性、数据的安全性就有了良好的保障。

      通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更加方便。

 

面向对象的基本概念:

对象:

  一般意义上:静态特征(可以用某种数据来描述),动态特征(对象所表现的行为或具有的功能)

  面向对象方法中的:由一组属性(描述静态特征的数据项)和一组行为(描述动态特征的操作序列)构成。

  

类:

  面向对象法中的:具有相同属性和服务的一组对象的集合。

  类与对象的关系:一个属于某类的对象称为该类的一个实例。(模具与铸件)

 

封装:

  把对象的属性和服务结合成一个独立的系统单元,只保留有限的对外接口使之与外界发生联系。

 

继承:(对于软件复用有重要意义)

  特殊类对一般类的继承:特殊类对象拥有其一般类的全部属性与服务。

 

多态性:

  多态:在一般类中定义的属性和行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。

 

面向对象(OO)的软件工程:

  分析(OOA):简明扼要精确地抽象出系统必须做什么,但是不关心如何去实现。(直接用问题域中客观存在的事物建立模型中的对象)

  设计(OOD):针对系统地一个具体实现运用面向对象的方法。把OOA模型搬到OOD作为OOD的一部分。

  编程(OOP):把OOD模型中的每个成分书写出来。

  测试(OOT):以对象的类作为基本测试单位,发现软件中的错误。

  维护(OOSM):根据软件运行情况和用户需求,不断改进系统。

 

基本术语:

  源程序:用源语言写的,有待翻译的程序。

  目标程序(结果程序):是源程序通过翻译加工以后所生成的程序。

  翻译程序:把源程序翻译成等价的目标程序的程序。

 

三种不同类型的翻译程序:

  汇编程序:把汇编语言写成的源程序翻译成机器语言形式的目标程序。

  编译程序:高级程序设计语言缩写的源程序翻译加工成目标程序。

  解释程序:边翻译边执行。(如jiava)

 

程序的开发过程:

  编辑(cpp)、编译(变成机器语言代码)、连接(将多个源程序文件以及库中的某些文件连在一起,exe)、运行调试。

 

计算机中的信息:

  数据信息:计算机程序加工的对象。

  控制信息:指挥计算机操作。

  信息:控制信息(指令,控制字),数据信息【数值信息(定点数,浮点数),非数值信息(字符数据,逻辑数据)】

 

信息的储存单位:

  位(bit,b)最小单位,表示一位二进制信息。

  字节(byte,B)由八位二进制数字组成(1B=8b),1KB=1024B(千字节),1MB=1024KB(兆字节),1GB=1024MB(吉字节)

标签:对象,程序,c++,第一章,面向对象,程序设计,数据,源程序
From: https://www.cnblogs.com/zhangyikai0122/p/17087418.html

相关文章

  • 关于C++的词汇统计
    提问: 输入输出怎么写,希望大家帮忙补充。C++词汇统计把所有单词/短语汇总在一起,找出出现次数最多的那个。输入是一行,为所有单词,由空格隔开。最多有100000个单词。输出一个......
  • C++ 处理字符串编码问题
    #include<iostream>#include<locale>#include<codecvt>std::stringUnicodeToUTF8(conststd::wstring&wstr){std::stringret;try{std::wst......
  • 代码随想录算法训练营Day2|977有序数组的平方 209.长度最小的子数组 59螺旋矩阵Ⅱ(C++)
     LeetCode刷题,代码随想录算法训练营Day2977.有序数组的平方 题目链接:977.有序数组的平方 题目思路:关键在于双指针思想的应用输入:nums=[-4,-1,0,3,10]输出:[0......
  • C++之智能指针
    一、为什么需要智能指针?如果在div()输入的b==0,那么就会抛出一个异常,被main()捕获,但是在Func()中new申请的资源就会因没释放而发生泄露问题,这是一种异常安全问......
  • 《ATK-DLRV1126Qt开发环境搭建》第一章 Ubuntu下安装Qt Creator​
    Ubuntu下安装QtCreator1.1安装Qt​进入下载页面(注意如果找不到下载链接,我们就进行这个顶层目录一个个目录找,因为Qt下载链接会变动),选择Linux的安装包下载。使用迅雷下载再拷......
  • C++ 树进阶系列之线段树和它的延迟更新
    1.前言线段树和树状数组有相似之处,可以用于解决区间类型的问题。但两者又各个千秋,树状数组本质是数组,有着树的形,可以借用树的一些概念。线段树是典型的二叉树结构,无论神......
  • C++中char*与string转换
    (1)char*转换为string:直接赋值即可chara[1024]="abcdefg";stringmm=a;(2)求char*(不包含\0)以及string的长度:strlen()函数cout<<"a.size:"<<strlen(a)<<endl;......
  • c++内置类型
    内置类型,由编译器规定,不在任何头文件中,分为三种主要类型:整型、浮点型和void。void类型void主要用于声明无返回值的函数、声明指向任意类型化数据的指针或用于以下类型的......
  • 【八大数据排序法】插入排序法的图形理解和案例实现 | C++
    第十六章插入排序法:::hljs-center目录第十六章插入排序法●前言●认识算法●一、插入排序法是什么?1.简要介绍2.图形理解3.算法分析●二、案例实现1.......
  • gdb 打印出错行 Find Where a C++ Exception is Thrown
    https://www.digitalpeer.com/blog/find-where-a-cpp-exception-is-thrownHere'sasimpleexampleofhowtofindwhereaC++exceptionisthrownusinggdb.There's......