首页 > 编程语言 >C++ Primer Plus(第6版):封装、继承与多态

C++ Primer Plus(第6版):封装、继承与多态

时间:2024-04-10 20:13:46浏览次数:36  
标签:编程 多态 C++ C语言 结构化编程 Plus OOP

C语言编程原理

C语言在最初面试时是一种过程性(procedural)语言,这意味着它强调的是编程的算法方面,程序命令计算机按照一系列流程生成特定的结果。但是随着程序规模的扩大,程序经常使用分支语句,很多旧式程序的执行路径很混乱(被称为“意大利面条式编程”,突出一个混乱程度)。计算机科学家开发了一种更加有序的编程方式--结构化编程(structured programming),结构化编程将分支限制为一小组行为良好的结构。C语言词汇表中就包含了这些结构(forwhileif else等)。

另一个新原则是自顶向下(top-down)的设计。在C语言中将大型任务分解成小型的、易于管理的任务,它鼓励程序员开发程序单元(函数)来表示各个任务模块。结构化编程技术反映了过程性编程的思想,根据执行的操作来构思一个程序。

面向对象编程(OOP)

C++是C语言的超集,其++符号来自于C语言中的自加运算。

与强调算法的结构化编程不同,OOP强调的是数据,其理念是设计与问题本质特征相对应的数据格式。

在C++中,类是一种描述数据以及对数据可执行操作的集合。比如定义一个描述矩阵的类,那么描述数据部分应该包括:顶点的位置,长和宽的大小,可执行操作应该包括:移动、获取和改变大小、复制等。在需要使用矩阵时,可以通过定义创建对象,该对象包含了描述矩阵的所有数据,并且可以使用可执行操作来修改矩阵。

OOP编程可以通过封装从而隐藏私有数据,使其免遭不适当的访问;可以通过多态为运算符和函数创建多个定义,通过编程的上下文确定使用哪个定义;可以通过继承使用旧类派生出新类。OOP引入了很多新的理念,它不是将重点放在任务上,而是放在概念上。这种从低级(如类)到高级(如程序)的处理过程叫做自下向上(bottom-up)的编程。

泛型编程

泛型编程是C++支持的另一种编程模式,它实际上是一种静态多态。它与OOP的目标相同,让代码重用和抽象通用概念的技术更简单。不过OOP强调的是编程的数据方面,泛型编程强调的是独立于数据类型。

标签:编程,多态,C++,C语言,结构化编程,Plus,OOP
From: https://www.cnblogs.com/warren-j1an/p/18127233

相关文章

  • 突破编程_C++_网络编程(Windows 套接字(阻塞模式与非阻塞模式))
    1阻塞模式与非阻塞模式的概念(1)阻塞模式概念:在阻塞模式下,当套接字执行I/O操作时,如果操作不能立即完成,调用函数会一直等待直到操作完成。在等待期间,执行操作的线程会被阻塞,无法继续执行其他任务。特点:简单直观:对于许多简单的网络应用来说,阻塞模式编程简单直观,易于理......
  • c++11实现线程池
    c++11实现线程池c++线程库thread创建线程和同步的方式jion,detach#include<iostream>#include<thread>voidprintf_hw(std::strings){ std::cout<<s<<"\n";}intmain(){ std::threada(printf_hw,"nihao"); //a.join();//同步 a.de......
  • [C++] 小游戏 斗破苍穹 2.10.1 版本 zty出品
    目录前言先赞后看 养成习惯正文后记前言   大家好,今天zty(<-痧蔽)带来的是斗破苍穹2.10.1版本本版本为战斗更新加入了四个新怪物和四个新装备并且修复了许多bug,希望大家喜欢,今天的赞不多要要50个就够了先赞后看 养成习惯正文#include<stdio.h>#inc......
  • template—模板初阶(C++)
        本篇将会对Cpp中的模板进行一个简单的介绍(后序还关系模板进阶,对模板的内容进行更深入的讲解),其中包括模板的使用:函数模板、类模板,以及对于泛型编程的理解。其中的重点为函数模板,介绍了函数模板的原理、隐式实例化和显示实例化、还有模板参数的匹配规则。目录如下......
  • 内存管理new and delete(C++)
        在本篇中,将会较为详细的介绍在Cpp中的两个新操作符new和delete,将会介绍其中的底层原理,以及这两个操作符的使用方法。其中还介绍了new/delete操作符使用的细节,还扩展了一些有关定位new表达式的知识点。最后总结了malloc/free与new/delete的区别。目......
  • UE中创建Actor添加组件初始化(UEC++个人学习笔记)
    在ue中创建actorc++类,在actor的.h文件中添加五个组件又由上到下的作用分别为:获取下SceneComponent,用于操作其Transform等相应接口。获取静态模型组件。获取盒子碰撞组件。获取粒子特效组件。获取音频组件。#include"Components/SceneComponent.h"#include"Components......
  • C++核心编程
    C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放......
  • ROS中自定义全局算法规划器(c++)
     ros中编写一个全局路径规划器并集成为ros插件,加载到turtlebot3机器人平台上仿真验证参考资料:ROS中自定义全局规划器(上)_算法部署_哔哩哔哩_bilibili官网教程:navigation/Tutorials/WritingAGlobalPathPlannerAsPlugininROS-ROSWiki1.建立工作空间mkdir-pjps_......
  • C++_STL提供了六大组件
    STL提供了六大组件StandardTemplateLibrary容器:Containers各种数据结构,如vector,list,deque,set,mep等。容器是类模板。在声明容器变量时,可以指定容器将保存的元素的类型算法:各种常用的算法,提供了执行各种操作的方式,包括对容器内容执行初始化,排序,搜索和转换等操作,比如sort,s......
  • C++笔试面试题整理
    常见C++笔试面试题整理1.C和C++的区别C是面向过程的语言,是一个结构化的语言,考虑如何通过一个过程对输入进行处理得到输出;C++是面向对象的语言,主要特征是“封装、继承和多态”。封装隐藏了实现细节,使得代码模块化;派生类可以继承父类的数据和方法,扩展了已经存在的模块,实现......