zoukankan      html  css  js  c++  java
  • [知识点] 1.3 C++ 与面向对象程序设计

    总目录 > 1  语言基础 > 1.3  C++ 与面向对象程序设计

    前言

    用 C 语言铺垫了之后,从这篇开始,专门介绍 C++ 的概念,基础,特性与进阶内容。

    对于 C++ 语言本身的许多基础知识以及高级教程,这里推荐一个很经典的教程网站:https://www.runoob.com/cplusplus/cpp-tutorial.html,非常详细。

    子目录列表

    1、面向过程与面向对象

    2、面向对象语言特征

    3、C++ 的特点

    4、C++ 基本结构

    1.3  C++ 与面向对象程序设计

    1、面向过程与面向对象

    ① 面向过程

    20世纪60年代,软件危机,结构化程序设计(Structure Programming, SP)思想腾空而出,采用自顶而下、逐步求精、模块化的方法进行程序设计。其基本特点是:按层次组织模块;每个模块只有一个入口和出口;代码数据分离,即 “程序 = 数据结构 + 算法”

    SP 是一种以功能为中心的面向过程程序设计方法。首先将要解决的问题分解成若干功能模块,再根据模块设计一系列用于存储数据的数据结构,再编写函数对数据进行操作,最终组成程序。这样的程序设计方法问题在于,对于不同格式的数据做相同的处理,或者对相同格式的数据做不同的处理,都需要编写不同的程序,代码太多冗余。

    ② 面向对象

    随着时代的变迁,面向过程程序设计不再能满足软件开发在效率、代码共享和更新维护等方面的需求了,面向对象程序设计技术应运而生。

    面向对象语言的基本观点是,计算机求解的都是现实世界中的问题,它们由一些相互联系且处于不断运动变化的事物组成,如果能将它们的状态和之间的关系完全一一映射到计算机中,方能更好解决问题。

    对于任何一个客观事物,用数据表示它的特征,用函数描述它的行为,两者结合成一个整体,称为对象。数据全称为数据成员,函数全称为成员函数。任何对象的数据成员通常只能通过自身成员函数修改。

    2、面向对象语言特征

    现在的主流计算机语言,诸如 C++, Java, Python, C# 等等,均为面向对象语言。

    面向对象语言有四大特征: 

    ① 抽象

    将事物的主要特征抽取出来,并用其描绘客观事物。抽象的结果是形成对应客观事物的抽象数据类型(Abstruct Data Type, ADT)。抽象只是给出功能描述,设计出各项功能及方法,相当于提供使用该数据类型的接口。

    ② 封装

    包装并实现抽象出来的数据类型,使之成为可用于程序设计的抽象数据类型的过程。将抽象出的特征(对应数据)行为(对应函数)捆绑成一个整体,并编码实现抽象所设计的接口功能。被封装的 ADT 由接口和实现两部分组成。接口描述显示给用户的外部视图,实现细节被封装隐藏。

    C++ 中用 class 实现封装,封装后的 ADT 称为

    ③ 继承

    继承源自自然界。允许一个类从另一个类继承(或派生)而来,能实现被继承类的所有属性与行为,并且能修改或增加新的属性和行为,称为一个功能更强大、更满足需求的类。新的类称为子类,原有类称为基类

    ④ 多态

    多态的意思是 “一个接口,多种形态”,不同对象针对同一种操作能表现出不同行为。

    3、C++ 的特点

    C 语言是面向过程的语言,C++ 是面向对象的语言。从本质而言,C++ 有质的飞跃,但以此同时,保留了 C 语言所有的功能,所以,C 是 C++ 的子集

    面向过程的 C 语言,其首要考虑如果通过一个过程,对输入进行运算处理而得到输出。

    面向对象的 C++ 语言,其首要考虑如果构造一个对象模型,让这个模型契合对应的问题域,通过获取对象的状态信息得到输出。

    C++ 从思想层面比 C 要更为先进,但实际编写起来并无差异。在功能上,C++ 继承 C 的所有特性,并有所加强,同时引入诸如重载,内联,异常处理与面向对象设计的内容(类,继承,虚函数,模板,容器等)

    4、C++ 基本结构

    在 1.1  C 语言基础 中,介绍了 C 语言的基本结构,C++ 语言大同小异。

    #include <iostream>
    using namespace std;
     
    int main() {
        cout << "Hello, world!"; // output 'Hello, world!'
        return 0;
    } 

    L1 中的 <iostream> 是 C++ 独有的头文件。在 C 语言中,所有头文件格式均为 .h 结尾,但 C++ 的新标准中允许没有 .h 扩展名。同时,C 语言中的许多头文件,诸如 string.h, stdio.h, math.h,在 C++ 标准中被修订为 cstring, cstdio, cmath。C++ 中,两套标准均被允许调用。

    L2 的 “using namespace std” 是 C++ 独有的命名空间声明。关于命名空间的介绍,请参见 1.4.4  命名空间与作用域

    L4 中的 cout 是 C++ 独有的流输出函数,包含于 <iostream> 头文件中。更多关于流输入输出的内容,请参见 1.4.1  流输入输出

    其他部分一致。

  • 相关阅读:
    泛微云桥e-Bridge 目录遍历,任意文件读取
    (CVE-2020-8209)XenMobile-控制台存在任意文件读取漏洞
    selenium 使用初
    将HTML文件转换为MD文件
    Python对word文档进行操作
    使用java安装jar包出错,提示不是有效的JDK java主目录
    Windows server 2012安装VM tools异常解决办法
    ifconfig 命令,改变主机名,改DNS hosts、关闭selinux firewalld netfilter 、防火墙iptables规则
    iostat iotop 查看硬盘的读写、 free 查看内存的命令 、netstat 命令查看网络、tcpdump 命令
    使用w uptime vmstat top sar nload 等命令查看系统负载
  • 原文地址:https://www.cnblogs.com/jinkun113/p/13598805.html
Copyright © 2011-2022 走看看