C++学习笔记17:面向对象程序设计的特点与类的定义

《面向对象程序设计C++》期末考试试卷 《面向对象程序设计C++》期末考试试卷一、选择题(每小题3分,共48分。)01、下列关于C++函数的叙述中,正确的是( C )。A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明 D)函数不能自己调用自己02、下列关于类和对象的叙述中,错误的是( A )。A)一个类只能有一个对象 B)对象是类的具体实例C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系03、在C++中,用于实现运行时多态性的是( D )。A)内联函数 B)重载函数 C)模板函数 阅读详情

面向对象的程序设计的特点:

抽象、封装、继承和多态。

抽象

指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述。
包含两个方面,分别是数据抽象和行为抽象。
数据抽象:描述某类对象的属性和状态
行为抽象:描述某类对象的共同行为或功能特征。
举例:当把人作为一个类的时候,人的属性如名字、年龄、性别等就是数据抽象,而比如工作、学习、吃饭睡觉这些属于行为抽象。

封装

将抽象得到的数据和行为相结合,形成一个有机整体。也就是将数据和函数进行有机结合,形成类。

继承

允许程序员在保持原有类特性的基础上,进行更加具体、详细的说明

多态

一段程序能够处理多种类型对象的能力。

类

语法形式
class 类名称
{
public:
	外部接口
protected:
	保护型成员
private:
	私有成员
}

public、protected,private分别表示对成员的不同访问权限。在类中可以只声明函数原型,函数的实现可以在类外定义,具体定义语法见学习笔记18.

类成员的访问控制
  • 公有类型成员:定义了类的外部接口,跟在public关键字后,任何外部函数都可以访问公有类型的数据和函数
  • 私有类型成员:只能被本类的成员函数访问,来自类外部的访问都是非法的。如果紧跟在类名称后面声明私有成员,则关键字private可以省略。
  • 保护类型成员:性质与私有类型成员相似,区别在于继承过程中产生的新类影响不同。
类内初始值
  • 可以为数据成员提供一个类内初始值。
  • 在创建对象时,类内初始值用于初始化数据成员。
  • 没有初始值的成员将被默认初始化。
类成员的访问形式
  • 类中成员访问:直接使用成员名访问
  • 类外成员:使用对象.成员名访问public成员
    在这里插入图片描述
C++ 17 的 std::byte 类型 在大多数平台上,字节(也被称为 8 位组),是计算机程序存储数据的基本单位。但是不幸的是,C++ 一直没有字节类型。有人会问 char 不是吗?char 还真不是,它是一个字符类型,在 C++ 的世界里一直被认为是整型数的一种,只是在大多数系统中恰好也是 8 个比特位而已。 阅读详情

相关推荐

C++17新属性详解

C++17的入选特性有:(1).非类型模板参数的 auto      模板参数分为两种,一种是类型模板参数,也是我们用得最多的一种:template <typename T, typename U> auto add(T t, U u) { return t+u; }     里面的 T 和 U 都是类型模板参数。另一种是非类型模板参数,它可以让不同的字面量成为模板的参数:te...

程序猿老樊的博客 5万+

Java的四个基本特征(抽象,封装,继承,多态)

java的四个基本特征是很容易开始面试的点,如果问的是三大属性,那么是封装,多态,继承,如果问的是四大特征,那么分别是抽象,封装,多态,继承。 1.抽象 抽象:将相同的类的共同特征总结出来,构造成类的过程。包括数据抽象以及行为抽象。数据抽象变成类的成员变量,行为抽象变成类的成员函数。抽象只关心成员变量以及成员函数,并不关系具体的实现细节。 下面是Person.class,表示与人...

秦怀杂货店 7068

C++程序设计语言(第三版)中文版

面向对象编程(OOP)是C++中强大的编程范式,其核心概念是类和对象。类是一组相关数据和函数的集合,它可以定义为一个自定义数据类型,用于描述具有相同属性和行为的对象集合。对象是类的实例,是类在程序运行时的具体表现。在C++中,类的定义开始于关键字class,后面跟着类名和一对大括号,括号内包含类成员的声明。创建对象非常简单,只需要使用类名并按照声明的变量的方式即可。

weixin_42613018的博客 1143

【java系列】面向对象之4大特征|3大特性|5大原则

大家好,我是walker 一个从文科自学转行的程序员~ 爱好编程,偶尔写写编程文章和生活 欢迎关注公众号【I am Walker】,一块学习编程~ 面向对象的4大特征 抽象: 抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。 抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 例如:动物基本上都需要吃,那么就有“吃”这个行为抽象,也有体重,那么就有“体重”这个数据抽象属性了。 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不.

Think_and_work的博客 1077

高德地图轨迹回放,消息框内展示车辆速度且随车辆移动-升级支持调整速度、回放进度

使用高德地图回放车辆GPS轨迹,并添加速度和回放进度条,并支持调整,效果如下: 新增的功能: 在基础版本,有如下升级 速度条:可以拖动以调整车辆回放速度,且从当前位置继续回放 进度条:进度条表示车辆已回放的百分比,且拖动进度条车辆定位到相应的位置并继续回放 ###思路分析 高德和marker回放相关的API //主要靠他回放 moveAlong(path:Array,speed:Number,f:Function,circlable:Boolean) //点移动到另一个位置,移动进度条车辆跟随移动

博客 1万+

短视频团队架构&工作流程---2025.3.30

1、负责短视频日常内容分发上线,包括视频头图、标题、简介、推荐位及部分内容元数据的日常导入、审核、上线、下线,并提供各品类短视频的内容上线计划表。(20)运营:视频推送后,实时跟进视频数据,定期统计分析数据报表,根据数据表现 找到问题,并发送给各个小组的负责人,对下一期视频内容进行调整。(4)运营:收到成片,设计视频头图、标题、简介、推荐位等,分发到各个平台,统计分析视频的数据,对各个平台的视频进行管理、用户互动等。1、负责影视、戏剧、广告、专题片等的策划、组稿选题、材料收集、内容策划。

超越神明 2153

C++学习笔记(17.类1 基础)

本文为个人学习笔记,参考链接:菜鸟教程。请点击链接查看原文,尊重楼主版权。 /* 本文: 1/ C++ 类定义 2/ 访问数据成员 3/ 类成员函数 17.类class C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。 类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。 -----------...

鳄鱼泪的博客 393

狗都能看懂的MAML原理讲解和代码实现

meta-leaning指的是元学习,元学习是深度学习的一个分支,一个好的元模型(meta-learner)应该具备对新的、少量的数据做出快速而准确的学习。通俗的来讲, 对于人来说,给几张橘猫的图片让看一下,再给你几张没见过的英短猫图片,你一定能很快识别出来都是猫。但是对于神经网络来说,并非如此。如果让一个小汽车分类网络去识别不同的大货车,那效果肯定很差。而传统的CNN网络都是输入大量的数据,然后进行分类的学习。但是这样做的问题就是,神经网络的通用性太差了,根本达不到“智能”的标准。而人类的认知系统,可以通

个人学习笔记 6万+

2021-03-19

1.抽象与封装 在计算机软件开发领域,抽象包括两个方面的内容:数据抽象与行为抽像,前者描述某类对象的公共属性(状态),后者描述某类对象的行为特征。 在面向对象的程序设计中,数据抽象和行为抽象被封装成一个有机的整体。Java语言通过类来实现封装。类是数据及其相关操作(行为)的封装体,是对对象的抽象及其共性的描述,对象是类的实例。 类是一个封装体,它实现了数据的隐藏。用户只能通过其对外接口,使用一个已定义类的对象,从而可以有效地阻止非法访问,增强数据地安全性。同时,只要保持类的接口不变,该类的内部工作流程可以

weixin_49207937的博客 349

做形态学方法的团队_“设计形态学”与“第三自然”

文/邱松(清华大学 美术学院)摘要:“设计形态学”是基于“形态学”研究的设计基础学科。“形态”既是该学科研究的主体,又是与其它学科相连接的“纽带”。实际上,不管是供养我们的地球家园,还是神秘莫测的浩瀚宇宙,均由数量纷繁、千姿百态的“形态”构筑而成。形态通常被分成两大类:一类是源于“第一自然”的“自然形态”;另一类是来自“第二自然”的“人造形态”。而这两类形态正是“设计形态学”研究的两条...

weixin_31548723的博客 2683

手把手教你在全新服务器内网安装OpenEuler 22.03 LTS SP4+ 安装 openGuass 5.0.0(LTS) 数据库

openEuler是面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的开源服务器Linux操作系统。

cgqyw的专栏 3736

第一章 面向对象程序设计概论

一、名词解释抽象:面向对象方法中的抽象,是指对具体问题(对象) 进行概括,找出一类对象的公共性质并加以描述的过程。封装:面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。消息:消息机制是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。二、填空题(1) 目前有 面向过程的结构化程序设计方法 和 ...

qq_41797872的博客 2030

DeepSeek-OCR 本地部署使用教程(附完整环境配置与推理示例)

DeepSeek-OCR是由DeepSeek AI推出的开源OCR模型,支持高精度文档识别与结构化输出(如Markdown转换)。本文提供了详细的本地部署指南,包括系统要求(推荐Linux+A100 GPU)、环境配置(Python 3.12.9+PyTorch 2.6.0+CUDA 11.8)、模型下载及两种推理方式:高性能的vLLM(适合批量处理)和灵活的Transformers(适合调试)。支持多种分辨率模式和提示词模板,适用于合同识别、PDF转换等场景。常见问题包括显存优化和性能调优建议。

qq_58607032的博客 6721

cpp filesystem 仓鼠学C++17:文件系统库

本文介绍了CPP的文件系统库(filestream)并且提供了相应的配置与功能介绍,并且举了自己成功运行的一系列例子进行讲解,希望支持

weixin_60849947的博客 2314

如何在 R 中执行 Kruskal-Wallis 检验

Kruskal-Wallis 检验用于确定三个或更多独立组的中位数之间是否存在统计学上的显着差异。它被认为是单向方差分析的非参数等效项。本教程介绍了如何在 R 中执行 Kruskal-Wallis 检验。示例:R 中的 Kruskal-Wallis 检验 假设研究人员想知道三种不同的肥料是否会导致不同水平的植物生长。他们随机选择 30 种不同的植物并将它们分成三组,每组 10 株,每组施用不同的肥料。在一个月结束时,他们测量每株植物的高度。使用以下步骤执行 Kruskal-Wallis 检验以确定三个组的中

Mrrunsen的博客 3798

基于STM32设计的老人监护系统(OneNet)_118

该项目是基于STM32设计的老人监护系统。本系统可以通过脉搏心率传感器,体温传感器检测老人的脉搏状态,体温状态,把老人的数据状态在STM32单片机内部进行处理,然后通过GSM模块上传到OneNet云平台,在通过可视化界面显示出来,这样可以让子女随时随地了解到老人现在的身体情况,以便对老人的突发情况能够做出及时的预防和处理。而且如今,随着老人年纪不断的增长,身体体质不断的衰弱,在上楼梯或者走斜坡的时候很容易会发生摔倒或跌倒,如果不及时的接收到治疗,很可能会造成很严重的后果。

7456

《面向对象程序设计》授课计划2023-2024-02

OOP16-附1-UML案例-书籍管理 [2019.05添加]OOP16--附1UML案例-银行系统[2019.05添加]6 函数原型、引用、内联函数、缺省参数、函数重载。CPP10-泛型程序设计与C++标准模板库。CPP10-泛型程序设计与C++标准模板库。CPP09-群体类和群体数据的组织。CPP06-数组 指针与字符串。CPP06-数组 指针与字符串。CPP05-数据的共享与保护。CPP11-流类库与输入输出。CPP05-数据的共享与保护。面向对象程序设计授课计划。CPP07-继承与派生。

教学 & 技术专栏 1502

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

探索《CPP-17-STL-cookbook》:C++17 STL实战指南

是一个面向C++开发者的开源项目,由xiaoweiChen创建并维护。该项目旨在帮助开发者深入理解和充分利用C++17标准模板库(STL),以提升编程效率和代码质量。它提供了一系列实例教程,涵盖了STL的核心组件,包括容器、迭代器、算法和函数对象等。

gitblog_00055的博客 904

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

解锁面向对象编程:Python 类与对象详解

面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的编程典范,同时也是一种程序开发的抽象方针。

Yui_的博客 3087

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【类定义系列六】C++17新特性

C++17引入的inline静态成员变量特性允许在类内直接定义和初始化静态成员变量,无需类外重复定义。

优快云_RTKLIB的博客 2342

《面向对象程序设计-C++》实验二 类的定义和对象的使用

《面向对象程序设计-C++》实验二 类的定义和对象的使用

xinghuayu_lin的博客 761

《面向对象程序设计》授课计划2025-2026-02 (计科 24)

课程要求编程语言面向对象简介C++简介实验环境CH1CPP01-绪论。

教学 & 技术专栏 1879

Cpp入门基础

定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下 ⾯的rand不在冲突了。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。

2401_86658278的博客 5142

【C++】C++17中可以存储任意类型数据的对象——any类的使用与设计思想

一提到存储任意类型,第一时间想到的可能就是STL容器,这种容器都是模板。但是,模板类在实例化对象是都要指定类型,例如。那么模板实例化的对象存储的数据类型就是固定的。C++17提供了std::any类,头文件是。any类实例化的对象可以存储任意类型的数据,本文会为大家介绍如何使用any类以及any类是如何实现的。

2301_79796701的博客 1599

c++17好用的新特性总结

自从C++11开始,标志着c++的复兴和现代C++的开端。尽管有各种新语言层出不穷,但涉及性能和系统层面c++仍然是首选,地位无可撼动。 比如最近很火的鸿蒙系统框架代码,很多就是基于c++做的底层、运行时和应用框架封装。c++11后续又有11,14,17,20等众多新版本。哪个是主流? 截至目前来说,c++17应该是新项目的首选。C++14在11的基础上查缺补漏,并未加入许多新特性,而C++17作为C++11后的第一个大版本,标志着现代C++逐渐走向成熟。 这里总结下C++17在业务代

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 1万+

如何掌握C++面向对象编程:CPP-Crash-Course终极指南

面向对象编程(OOP)是C++语言的核心特性,也是从C程序员成功转型为C++开发者的关键所在。CPP-Crash-Course项目为C程序员提供了一个完整而实用的C++速成教程,特别专注于**C++类与对象**的深度解析。本文将带你深入了解这个优秀的开源项目,掌握C++面向对象编程的核心概念和实践技巧。 ## 📚 CPP-Crash-Course项目概述 CPP-Crash-Course是一

gitblog_00023的博客 551
上一篇: C++学习笔记16:constexpr函数和系统函数
下一篇: C++学习笔记18:对象和成员函数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值