OOP思想--封装和继承

article/2025/10/2 23:11:31

本篇主要讲面向对象的封装继承特性,另一个特性多态会在后面的文章中讲到。

目录:

面向对象编程过程
封装的实现
继承的方式
继承后对象的构造顺序
继承的种类

一、什么是面向对象编程(Object Oriented programming,OOP)思想?

在学习C++之前我们一直说面向过程,也就是对于一个需要解决的问题,进行分析,得出每个步骤的实现和实现顺序的过程。所以自然而然的就能够进行面向过程编程,既只需用函数实现这些步骤,然后在使用的时候一个一个进行调用即可。但是为了实现代码的可移植性和可扩展性,就有了面向对象。就是把构成问题的事物分解成各个对象,然后描述某一类对象在解决整个问题步骤中的行为。用一幅图来描述面向对象编程的过程。


有了面向对象编程技术,因此(程序=算法+数据结构)变为了(程序=基于对象的算法+以对象为最小单位的数据结构)

二、封装:隐藏内部实现。

封装如何实现?在C++里边,封装和隐藏是通过访问限定符来实现。

三种访问限定符:

public:任意位置都能访问成员变量。

protected:只在类中可以访问,包括继承和派生中派生类可以访问父类的保护成员。

private:只有在自己的类中可以访问,但是友元关系可以打破。

说到这块了,顺便也说一下struct和class的区别

1、对于class来说定义的变量和函数默认是private,对于struct来说默认是public

2、在struct类中定义该类成员要写全称。//struct B{struct B *p;};

3、空结构体:

在windows上:C语言不允许定义空结构体、C++定义空结构体大小为1个字节。

在Linux上:C语言定义空结构体大小为0个字节、C++定义空结构体大小为1个字节。

class定义空结构体为1个字节。

三、继承:实代码复用。

(1)、继承的方式

有三种访问限定自然也就有三种继承关系咯!分别叫做共有继承、保护继承、私有继承。如果不给出继承关系默认是私有继承。

写法如下:

class Base
{……
};
class derive : Base
{……
};
在C++中冒号用到两个地方,分别是继承和初始化列表中。

不同的继承方式又对成员变量的访问有什么影响呢?用一张表总结一下:

 基类中变量的访问限定派生类中继承过来的访问限定外部对派生类中成员变量的访问
共有继承publicpublic
 protectedprotected不能
 private不可见不能
保护继承publicprotected不能
 protectedprotected不能
 private不可见不能
私有继承publicprivate不能
 protectedprivate不能
 private不可见不能

(2)、继承后对象的构造顺序

1、基类构造函数:如果有多个基类,构造函数的调用顺序是某类在类派生表中出现的顺序,而不是他们在成员初始化列表中出现的顺序。

2、成员类对象的构造函数:如果有多个成员类对象,则构造顺序是对象在类中被申明的顺序,而不是他们出现在成员初始化列表中的顺序。

3、派生类构造函数。

(3)、继承的种类

1、单一继承


2、多重继承


3、重复继承


对于这几种继承其中对成员变量的访问还是结合上面的表格分析即可。


http://chatgpt.dhexx.cn/article/KpOTC3WB.shtml

相关文章

11:c# oop思想面向对象编程(by-朝夕)

目录 前言oop思想面向过程面向对象 面向对象特点:设计模式/原则设计模式六大原则:单一职责原则(Single Responsibility Principle)里氏替换原则(Liskov Substitution Principle)依赖倒置原则(De…

php oop思想

1.特点: - 封装:隐藏对象的属性和实现细节 - 继承:从一个基类得到一个或多个类的机制 - 多态:根据使用类的上下文来重新定义或改变类的性质或行为 2.访问控制符 public 全局,类内部、外部、子类都可访问protected 受…

php中的oop思想,oop_php oop思想_oop和ood

我想从一个游戏程序员的角度探讨OOP的一个问题──性能。 现时C可以说是支持OOP范式中最为常用及高性能的语言。 历史上,OOP大概是60年代出现,而C诞生于70年代末。现在的硬件和当时的有很大差异,其中最大的问题是内存墙_百度百科。 图1: 处理…

java里oop思想_(一)OOP思想详解

1.关于抽象的进步。面向对象OOP的设计思路其实是把“抽象”这种编程方法进行了新的解释说明,把具体的人或事务抽象成了“类”“对象”的形式。 面向对象的主要思想: 万物即对象 程序是对象的组合 每个对象都有自己的空间,可以容纳其他对象 每…

Java面向对象OOP思想概述

Java设计思想 OOP思想(Object Oriented Programming)类和对象接口抽象类OOP三大特性封装继承多态 OOP复用的形式 OOP思想(Object Oriented Programming) 类和对象 在面向对象中,类和对象是最基本、最重要的组成单元 类:类可以说是一个模板,…

java里oop思想_Java OOP 思想解析

因为有着一年半的iOS开发经验(OC也是一门面向对象的语言)所以在对Java的面向对象的理解上也是有着自己的理解,今天就和大家分享一下。 面向对象中最为重要的三大思想就是:继承、封装、多态。本文将以一个实例场景来分析Java中的OOP。现有一个场景&#x…

OOP思想

OOP思想 OOP思想在框架实战中的具体体现: OOP程序员遇到问题时的思考方式: –》 利用现有的方法和对象来搞定 --》 去找方法或对象来搞定 去哪找呢? –》 从父类或者父接口找 idea在OOP开发上还是提供了很多很好用的工具,可…

OOP基本思想

面向对象思想 面向对象概念:是指把所有对象封装为对象,提高代码的复用性 【复用性就是指一段代码可以重复使用】 一:面向对象四大步骤: 1:给计算机定义一个类 【一个类又两部分组合:成员变量和成员方法】 2…

Kali Linux信息收集工具栏之Dmitry tools(工具)

首先这款工具是信息收集工具里的第一位,大体作用是对IP或者web域名进行whois查询,它的用参数如下图: 首先我们需要知道整个格式是这样的 dmitry [-winsepfb] [-t 0-9] [-o%host.txt] IP或者web域名 #环境变量 (空格接参数) -t在…

白帽子黑客与网络安全工程师教你:如何使用DMitry域名查询工具技巧?

课前声明: 1、本分享仅做学习交流,请自觉遵守法律法规! 2、搜索:Kali 与编程,学习更多网络攻防干货! 3、Kali 与编程每天准时更新,敬请学习和关注! 正文部分 一、背景介绍 DMitry 工…

Kali linux-信息收集-dmitry

信息收集-dmitry DMitry(Deepmagic Information Gathering Tools 深度信息收集工具)是一个kali linux下用C语言写的工具。主要功能为端口扫描,whois主机IP和域名信息,从Netcraft.com获取主机信息,子域名搜集。 帮助: -o 保…

荆棘合成器-Plugin Alliance Dmitry Sches Thorn 1.2.2 WiN-MAC

win:VSTi, VSTi3, AAX* (*MOD.) 288M | mac:VST, VST3, AU 113M Thorn是一款软件合成器,旨在易于使用并提供出色的声音。在Thorn中,简单意味着简单明了,并同时提供高级声音控制。直观的工作流程&#xff0c…

综合扫描工具 -- dmitry

今天的云很好看,我想拍给你看,却想到我们很久不联系了,突然觉得,云也没那么好看了。。。 ---- 网易云热评 Dmitry是一款一体化的信息收集工具 一、环境:kali201201 二、用法: -o Save output to %host.txt or to …

Kali 工具系列【4】深度信息挖掘工具Dmitry使用技巧

一、Dmitry是什么? DMitry是黑客渗透流程中进行深度信息收集的利器,它是一个由C语言编写的UNIX/(GNU)Linux命令行工具,无GUI操作界面,需掌握其常用使用参数。 二、Dmitry可以用来做什么? 1、进行TCP端口扫描,收集端口…

DNS收集分析DMitry

Dmitry是一个由C语言编写的UNIX/(GNU)Linux命令行工具,它可用于收集主机相关信息,比如子域名、Email地址、系统运行时间信息。 列出帮助信息: $ dmitry –help 查看更完整的文档: $ man Dmitry 选项详解: -o filename 创建as…

渗透前戏:dmitry简介

Dmitry是一款有深度的信息挖掘机,用自己的小破网站来做个实验,实际体验真的很鸡肋,我要对这个深度信息挖掘机做一个深深的鄙视。 查询IP地址信息: dmitry -i 104.244.88.156 原来我的网站的HostName是16clouds.com的二级域名。 查…

域名查询工具DMitry

DMitry工具是用来查询IP或域名WHOIS信息的。WHIOS是用来查询域名是否已经被注册及已经注册域名的详情大的数据库(如域名所有人和域名注册商)。使用该工具可以查询到域名的注册商和过期时间等。 简单使用 dmitry [-winsepfb] [-t 0-9] [-o %host.txt] h…

【kali-信息收集】(1.3)探测网络范围:DMitry(域名查询工具)、Scapy(跟踪路由工具)

目录 一、简介 1.1、概述: 二、工具 2.1、域名查询工具DMitry 简介: 命令: 使用: 分析: 命令: 2.2、跟踪路由工具Scapy 简介: 命令: 基础: ARP().display()…

最新kali之dmitry

描述: Deepmagic信息收集工具。   DMitry(Deepmagic信息收集工具)是UNIX /(GNU)Linux命令行应用程序,能够收集有关主机的尽可能多的信息。   DMitry的基本功能允许从目标上的简单whois查找到正常运行时…

KaliLinux-dmitry使用详解

文章目录 DMitry简介常用参数使用实例 DMitry简介 Dmityr算是一款比较老的工具,是一个简单的主机信息扫描程序,工作原理是通过whois和netcraft查询主机信息,并且可以进行一些简单的端口扫描域名检测等操作。(缺点:需要链接google…