C++学习——类和对象(上)

C++学习——类和对象

  • 一、面向对象和面向过程的初步认识
  • 二、什么是类

一、面向对象和面向过程的初步认识

我们之前学习了C语言,我们知道
① C语言:C语言是一门面向过程的语言,关注的是过程,分析出求解问题的步骤,通过函数调用来逐步解决问题。
② C++: C++是一门面向对象的语言,关注的是对象,将一件事情拆分为不同的对象,靠对象之间的交互完成。
我们在此可以举一个例子,洗衣服的过程。
在这里插入图片描述

面向过程:洗衣服的过程便是:拿个盆子,放水,放衣服,手搓,换水,放洗衣粉,手搓,拧干,晾衣服。
面向对象:如果洗衣服的过程是面向对象的,那么在这个过程中,总共有4个对象,人,衣服,洗衣粉,洗衣机,而整个洗衣服的过程可以分为四步:
①、我们将衣服放进洗衣机
②、倒入洗衣粉
③、启动洗衣机
④、洗衣完成并且甩干

二、什么是类

在C语言中,结构体只能够定义变量,而在C++中,结构体不仅可以定义变量,还可以定义函数。在此我们定义一个最简单的类

struct Date
{int year;int month;int day;
};

在C++中,我们通过定义一个类(class)来定义自己的数据结构。一个类定义了一个类型,以及与其相关联的一组操作。类机制是C++最重要的特性之一。实际上,C++最初的一个设计焦点就是能定义使用上内置类型一样自然的类类型。
下面我们简单的定义一个日期类,如下:

class Date
{
public:Date(int year, int month, int day){_year = year;_month = month;_day = day;}
private:int _year;int _month;int _day;
};

我们可以看出C++中类的定义为

class classname
{//类体:由成员函数和成员变量组成
};
其中claas为类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省
略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Anakki个人网站持续更新中

Anakki-World github: GitHub - Anyuei/anakki 欢迎注册,成为我的盆友

Android Bitmap保存成至手机图片文件,Kotlin

Android Bitmap保存成至手机图片文件,Kotlin fun saveBitmap(name: String?, bm: Bitmap) {val savePath Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()if (!Files.exists(Paths.get(savePath))) {Log.d("保存文…

用通俗的方式讲解Transformer:从Word2Vec、Seq2Seq逐步理解到GPT、BERT

直到今天早上,刷到CSDN一篇讲BERT的文章,号称一文读懂,我读下来之后,假定我是初学者,读不懂。 关于BERT的笔记,其实一两年前就想写了,迟迟没动笔的原因是国内外已经有很多不错的资料&#xff0…

Appium自动化如果出现报错怎么办?这么做确实解决问题

解决通过appium的inspector功能无法启动app的原因 在打开appium-desktop程序,点击inspector功能,填写app的配置信息,启动服务提示如下: 报错信息: An unknown server-side error occurred while processing the com…

【ShardingSphere专题】SpringBoot整合ShardingSphere(一、数据分片入门及实验)

目录 前言阅读对象笔记正文一、ShardingSphere介绍1.1 ShardingSphere-JDBC:代码级别1.2 ShardingSphere-Proxy:应用级别1.3 横向对比图 二、ShardingSphere之——数据分片2.1 基本介绍2.2 分片的形式2.2.1 垂直分片2.2.2 水平分片 2.3 数据分片核心概念…

数据库应用:MongoDB 库与集合管理

目录 一、理论 1.MongoDB用户管理 2.MogoDB库管理 3.MogoDB集合管理 二、实验 1.MongoDB用户管理 2.MogoDB库管理 3.MogoDB集合管理 三、问题 1.不显示新创建的数据库 2.插入数据报错 3.删除指定数据库报错 一、理论 1.MongoDB用户管理 (1) 内置角色 数据库用户…

11.28 知识回顾(Web框架、路由控制、视图层)

一、 web 框架 1.1 web框架是什么? 别人帮咱们写了一些基础代码------》我们只需要在固定的位置写固定的代码--》就能实现一个web应用 Web框架(Web framework)是一种开发框架,用来支持动态网站、网络应用和网络服务的开发。这大多…

2020年6月9日 Go生态洞察:VS Code Go扩展加入Go项目

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

unity学习笔记10

一、生命周期函数 1.Awake() 调用时间:对象被激活或创建时。 用途:通常用于初始化对象的状态,获取组件引用或执行其他在脚本生命周期早期需要完成的任务。 2.OnEnable(): 调用时间:对象激活时,包括对象被创建和Se…

Python数据预处理详解

更多资料获取 📚 个人网站:ipengtao.com 数据预处理是数据科学中至关重要的步骤,它包括清洗、转换、归一化等操作,以使数据适合于机器学习模型的使用。Python提供了多种强大的库和工具,能够帮助进行数据预处理。本文将…

idea 2023使用技巧(一)

IntelliJ IDEA在业界被公认为最好的java开发工具之一。它能给你良好的开发体验。 idea版本号为2023.2.5。 1 基础操作 1.1索引 idea首次加载项目时,都会创建索引,创建索引的时间跟项目的文件多少成正比。idea的缓存和索引主要是用来加快文件查询&…

JVM 参数介绍

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。 PermGen space:全称是Permanent Generation space.就是说是永久…

计算机丢失vcomp140.dll是什么意思,如何解决与修复(附教程)

vcomp140.dll缺失的5种解决方法以及vcomp140.dll缺失原因 引言: 在日常使用电脑的过程中,我们可能会遇到一些错误提示,其中之一就是“vcomp140.dll缺失”。这个错误提示通常出现在运行某些程序或游戏时,给使用者带来了困扰。本文…

【Python3】【力扣题】367. 有效的完全平方数

【力扣题】题目描述: 【Python3】代码: 1、解题思路:Python函数。num的平方根 或者 num的0.5次幂。 知识点:float.is_integer(...):判断浮点数的值是否等于整数。也可以:浮点数.is_integer()。 pow(a,b)&…

2020年4月20日 Go生态洞察:2019年Go开发者调查结果

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

springcloud进销存管理系统源码

开发说明: jdk1.8,mysql5.7,idea,vscode springcloud springboot mybatis vue elementui 功能介绍: 后台管理: 统计分析:查看产品,采购,销售数量;统计近…

入门必读:Figma软件的功能和用途一览!

1、Figma软件是做什么的 Figma软件奠定了在线设计工具的形式,产品UI设计功能非常强大,Figma软件基于web操作,无论是macos、windows可以使用这个软件,即使有电脑、浏览器、网络,甚至软件也不需要下载,节省了…

Zotero | 取消翻译后自动添加笔记

目录 Step1&#xff1a;点击 “编辑” << “首选项” Step2&#xff1a;“翻译” << 取消勾选 “自动翻译批注” 在 Zetoro 中&#xff0c;选择颜色标记勾画的内容&#xff0c;将会自动生成一条笔记&#xff0c;如下图所示&#xff1a; 本人觉得很鸡肋&#xff0…

【javaScript面试题】2023前端最新版javaScript模块,高频24问

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;博主收集的关于javaScript的面试题 目录 一、2023javaScript面试题精选 1.js的数据类型…

MindStudio学习记录三:推理应用开发 acl mindx sdk

1.推理应用流程 1.1.创建工程 1.2.模型转换 1.3代码开发 1.3.1ACL代码 1.3.2MindX SDK开发 可视化模块化设计 中间的图片与处理 是基于AIPP的可视化处理 1.5.编译 交叉编译 1.6.运行与调试 1.7 调优工具 profiling性能分析 2.开发举例 resnet-50 2.1 准备工程 2.2.准备模型…