当前位置: 首页 > news >正文

C++中的类简要介绍

文章目录

  • 前言
  • 一、什么是类什么是对象
    • 1.类的概述
    • 2.对象的概述
  • 二、如何创建使用类
  • 三、class和struct创建类时的区别
    • 1.访问级别
    • 2.继承方式
  • 总结


前言

本篇文章讲给大家介绍一个C++中重要的概念,了解了这个概念大家就明白了为什么C++会叫做面向对象编程了。

一、什么是类什么是对象

1.类的概述

其实我们生活中有很多类的例子,就像老虎是猫科动物可以看作一个大类,昆虫又是一个大类,机动车和非机动车又是不同的类。通过发现就可以知道自然界中有很多很多的类。我们通常把行为或者属性相近的事物归为同一个类。

2.对象的概述

对象又是什么?这里的对象可不是说的男女朋友的这种对象。
对象就是类的一个具体形态,也就相当于是一个独立的个体。

二、如何创建使用类

在C语言中我们都知道用struct可以创建一个结构体,到了C++中我们可以使用struct去创建一个类。
示例:

#include <iostream>
#include <string>using namespace std;struct A
{int i;void fun(void){cout << "hello" << endl;cout << i << endl;}
};int main()
{A a;a.fun();return 0;
}

到了C++中使用class代替struct创建类

calss A
{int i;void fun(void){cout << "hello" << endl;cout << i << endl;}
};

三、class和struct创建类时的区别

1.访问级别

class的默认访问权限是private,而struct的默认访问权限是public。这意味着,如果我们在class中定义一个成员变量或成员函数,则它们默认情况下是私有的,只能在类内部访问;而在struct中定义,则它们默认情况下是公共的,可以在类的外部访问。

#include <iostream>using namespace std;class Test
{int i;
public:int Geti(){return i;}
};struct Test1
{int i;int Geti(){return i;}
};int main()
{Test t1;Test1 t2;t1.i = 10;t2.i = 10;return 0;
}

这里分别使用struct和class创建了两个类,使用t1.i对i直接进行赋值是错误的。
但是使用t2,i直接对i进行赋值则是正确的。
通过这个例子就可以看出来class的默认访问权限是private,而struct的默认访问权限是public。

2.继承方式

class支持三种继承方式:public、private和protected,而struct只支持public继承。这意味着,如果我们使用class创建一个类,可以通过private和protected继承来隐藏成员变量和成员函数,使得类的设计更加灵活。
除了这些区别之外,class和struct在其他方面是相同的。它们都可以定义成员变量和成员函数,都可以使用构造函数和析构函数,都可以进行继承和多态等面向对象编程的特性。

总结

利用好C加加中的类是学好C加加非常重要的一部分,希望大家在学习类时能够重视起来。

相关文章:

C++中的类简要介绍

文章目录前言一、什么是类什么是对象1.类的概述2.对象的概述二、如何创建使用类三、class和struct创建类时的区别1.访问级别2.继承方式总结前言 本篇文章讲给大家介绍一个C中重要的概念&#xff0c;了解了这个概念大家就明白了为什么C会叫做面向对象编程了。 一、什么是类什么…...

项目管理工具DHTMLX Gantt灯箱元素配置教程:只读模式

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求&#xff0c;具备完善的甘特图图表库&#xff0c;功能强大&#xff0c;价格便宜&#xff0c;提供丰富而灵活的JavaScript API接口&#xff0c;与各种服务器端技术&am…...

从LiveData迁移到Kotlin的 Flow,才发现是真的香!

LiveData 对于 Java 开发者、初学者或是一些简单场景而言仍是可行的解决方案。而对于一些其他的场景&#xff0c;更好的选择是使用 Kotlin 数据流 (Kotlin Flow)。虽说数据流 (相较 LiveData) 有更陡峭的学习曲线&#xff0c;但由于它是 JetBrains 力挺的 Kotlin 语言的一部分&…...

【BOOST C++】组件编程(2)-- 组件的设计原理

GitHub - ros2/demos at foxy 一、说明 为了研究ROS2的组件编程&#xff0c;首先要理解如何何为组件。组件本是微软的发明物体&#xff0c;但是在ubuntu上需要自己从底层实现&#xff0c;就说ROS2不用你写&#xff0c;但是就能看明白也是需要一点理论功底的。本篇按照COM内幕的…...

基于单细胞多组学数据无监督构建基因调控网络

在单细胞分辨率下识别基因调控网络&#xff08;GRNs&#xff0c;gene regulatory networks&#xff09;一直是一个巨大的挑战&#xff0c;而单细胞多组学数据的出现为构建GRNs提供了机会。 来自&#xff1a;Unsupervised construction of gene regulatory network based on si…...

蓝桥杯-最优清零方案(2022省赛)

蓝桥杯-最优清零方案1、问题描述2、解题思路3、代码实现1、问题描述 给定一个长度为 N 的数列 1,2,⋯,A1,A2,...,ANA_1,A_2,...,A_NA1​,A2​,...,AN​ 。现在小蓝想通过若干次操作将 这个数列中每个数字清零。 每次操作小蓝可以选择以下两种之一: 1. 选择一个大于 0 的整数, 将…...

Mac免费软件下载网站推荐(最全免费,替代MacWk)

一、Appstorrent 官方网站&#xff1a; https://appstorrent.ru/ 这是一个俄语网站&#xff0c;其他很多网站资源都来自这里。点击右上角切换到中文。不需要登录网站&#xff0c;直接从软件详情页下载即可。体验非常好。 二、Xclient 官方网站&#xff1a; https://xclie…...

GPU是什么

近期ChatGPT十分火爆&#xff0c;随之而来的是M国开始禁售高端GPU显卡。M国想通过禁售GPU显卡的方式阻挡中国在AI领域的发展。 GPU是什么&#xff1f;GPU&#xff08;英语&#xff1a;Graphics Processing Unit&#xff0c;缩写&#xff1a;GPU&#xff09;是显卡的“大脑”&am…...

20230305学习计划

目录 第二天学习开发框架 前言 一、巩固复习第一天20230304学习笔记 二、SpringMVC中的控制器是不是单例模式&#xff1f;如果是&#xff0c;如何保证线程安全&#xff1f; 1、控制器是单例模式&#xff0c;是线程不安全的。 2、Spring中保证线程安全的方法&#xff1a; …...

SocketCan 应用编程

SocketCan 应用编程 由于 Linux 系统将 CAN 设备作为网络设备进行管理&#xff0c;因此在 CAN 总线应用开发方面&#xff0c;Linux 提供了SocketCAN 应用编程接口&#xff0c;使得 CAN 总线通信近似于和以太网的通信&#xff0c;应用程序开发接口更加通用&#xff0c;也更加灵…...

从零学习python - 04函数方法与返回值

函数&#xff1a;Function-也称为方法&#xff0c;是组织好的、可重复使用的&#xff0c;用来实现指定功能的代码块。函数的定义与调用:创建函数目的是封装业务逻辑&#xff0c;实现代码复用# 创建函数关键字:def(definition)def fun1(x, y):print(x y)函数的参数:python函数中…...

MySQL实战之事务到底是隔离的还是不隔离的

1.前言 我们在MySQL实战之事务隔离&#xff1a;为什么你改了我还看不见讲过事务隔离级别的时候提到过&#xff0c;如果是可重复读隔离级别&#xff0c;事务T启动的时候会创建一个视图read-view,之后事务T执行期间&#xff0c;即使有其他事务修改了数据&#xff0c;事务T看到的…...

Elasticsearch:理解 Master,Elections,Quorum 及 脑裂

集群中的每个节点都可以分配多个角色&#xff1a;master、data、ingest、ml&#xff08;机器学习&#xff09;等。 我们在当前讨论中感兴趣的角色之一是 master 角色。 在 Elasticsearch 的配置中&#xff0c;我们可以配置一个节点为 master 节点。master 角色的分配表明该节点…...

【致敬女神】HTMLReport应用之Unittest+Python+Selenium+HTMLReport项目自动化测试实战

HTMLReport应用之UnittestPythonSeleniumHTMLReport项目自动化测试实战1 测试框架结构2 技术栈3 实现思路3.1 使用HtmlTestRunner3.2 使用HTMLReport4 TestRunner参数说明4.1 源码4.2 参数说明5 框架代码5.1 common/reportOut.py5.2 common/sendMain.py5.3 report5.3.1 xxx.htm…...

JAVA的16 个实用代码优化小技巧

一、类成员与方法的可见性最小化 举例&#xff1a;如果是一个private的方法&#xff0c;想删除就删除。 如果一个public的service方法&#xff0c;或者一个public的成员变量&#xff0c;删除一下&#xff0c;不得思考很多。 二、使用位移操作替代乘除法 计算机是使用二进制…...

并发编程的三大挑战之原子性及其解决方案

目录 一、原子性问题 1、带来原子性问题的原因 2、如何解决线程切换带来的原子问题 2.1、使用synchronized关键字来保证 2.2、使用CAS来保证原子性 2.3、使用lock锁来保证 一、原子性问题 1、带来原子性问题的原因 线程切换是带来原子的根本原因&#xff0c;java的并发程…...

QML动画(其他的动画)

PauseAnimation &#xff08;暂停动画&#xff09; 为动画提供暂停 Rectangle{id:rect1width: 100;height: 100;x:100;y:100color: "lightBlue"SequentialAnimation{running: trueColorAnimation {target: rect1&#xff1b;property: "color"&#xff1b;…...

Spark 配置项

Spark 配置项硬件资源类CPU内存堆外内User Memory/Spark 可用内存Execution/Storage Memory磁盘ShuffleSpark SQLJoin 策略调整自动分区合并自动倾斜处理配置项分为 3 类: 硬件资源类 : 与 CPU、内存、磁盘有关的配置项Shuffle 类 : Shuffle 计算过程的配置项Spark SQL : Spar…...

掌握Vue3模板语法,助你轻松实现高效Web开发

Vue3作为前端开发中的一种主流框架&#xff0c;为我们提供了多种灵活的方式来处理模板语法。除了基础的模板语法&#xff0c;Vue3还提供了一些高级的语法&#xff0c;可以让我们更好地处理组件、响应式数据和UI逻辑等。在这篇博客中&#xff0c;我们将介绍Vue3中的一些高级模板…...

Jmeter+Ant+Jenkins接口自动化测试平台搭建

平台简介一个完整的接口自动化测试平台需要支持接口的自动执行&#xff0c;自动生成测试报告&#xff0c;以及持续集成。Jmeter支持接口的测试&#xff0c;Ant支持自动构建&#xff0c;而Jenkins支持持续集成&#xff0c;所以三者组合在一起可以构成一个功能完善的接口自动化测…...

上午题_程序设计语言

编译程序和解释程序...

抖音下载器底层架构解析:策略模式与异步编排的高性能实现

抖音下载器底层架构解析&#xff1a;策略模式与异步编排的高性能实现 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

2026年国民技术数字IC笔试试卷带答案

满分:100分 时间:90分钟 一、单选题(每题3分,共30分) 1. 在静态时序分析(STA)中,建立时间检查的公式为( ) A. Tclk + Tskew ≥ Tck-q + Tlogic + Tsetup B. Tclk - Tskew ≥ Tck-q + Tlogic + Tsetup C. Tclk ≥ Tck-q + Tlogic - Tsetup D. Tlogic ≥ Tsetup + Tho…...

语音真实度突破98.7%的关键在哪?ElevenLabs最新v3.2引擎深度测评,附权威MOS评分对比表

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;语音真实度突破98.7%的关键在哪&#xff1f;ElevenLabs最新v3.2引擎深度测评&#xff0c;附权威MOS评分对比表 ElevenLabs v3.2 引擎在2024年Q2发布的音频合成基准测试中&#xff0c;首次在自然度&…...

音频变压器关键参数深度解析:Z值与最大电流的工程实践

音频变压器关键参数深度解析&#xff1a;Z值与最大电流的工程实践引言在专业音频系统、高保真音响以及工业信号隔离场景中&#xff0c;音频变压器始终扮演着不可替代的角色。它的核心使命是在保持信号完整性的同时&#xff0c;完成阻抗匹配、地环路隔离和信号平衡转换三大任务。…...

从五管OTA到两级运放:在Cadence IC617中如何规划你的设计指标与晶体管尺寸(gm/id方法详解)

从五管OTA到两级运放&#xff1a;gm/id设计方法在Cadence IC617中的策略性应用 在模拟集成电路设计中&#xff0c;运算放大器的设计始终是工程师面临的核心挑战之一。特别是当设计需求从简单的五管OTA扩展到更复杂的两级运放时&#xff0c;设计者需要处理的不仅仅是晶体管尺寸的…...

GLIGEN图像空间控制:用边界框实现像素级精准生成

1. GLIGEN&#xff1a;不是又一个“AI画图玩具”&#xff0c;而是图像生成控制权的真正移交你有没有试过对着 Stable Diffusion 的提示词框反复修改半小时&#xff0c;就为了把一只猫准确地放在沙发左边、让咖啡杯稳稳立在桌面上、让窗外的梧桐树只出现在画面右上角——结果生成…...

3分钟掌握Windows安装APK:告别复杂模拟器的终极方案

3分钟掌握Windows安装APK&#xff1a;告别复杂模拟器的终极方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经遇到过这样的场景&#xff1f;同事发来一个实…...

打造高效命令行天气查询工具:基于KMI/IRM的比利时天气CLI实践

1. 项目概述&#xff1a;一个为终端而生的比利时天气查询工具 如果你和我一样&#xff0c;是个重度命令行用户&#xff0c;同时又对窗外天气是晴是雨有点在意&#xff0c;那你肯定也烦透了为了看个天气预报还得打开浏览器、点开某个天气网站或者解锁手机。这种打断工作流的感觉…...

Foundation Sites响应式设计原理:5个核心断点系统详解,打造完美移动优先体验

Foundation Sites响应式设计原理&#xff1a;5个核心断点系统详解&#xff0c;打造完美移动优先体验 【免费下载链接】foundation-sites The most advanced responsive front-end framework in the world. Quickly create prototypes and production code for sites that work …...