类 和 对象 的介绍
- 对象的本质是一种新的数据类型。
- 类是一个模型,对象是类的一个具体化实例。为类创建实例也就是创建对象。
一、类(class)
- 类决定一个对象将是什么样的(有什么属性、功能)。
- 类和变量一样,有名字。
1.创建类
class MyFirstClass //类用关键字class声明
{}; //注意有分号
2.注意事项:
- 类和结构的区别:对象的内部可以有变量和函数,而结构通常只由各种变量构成。
- 类名:类名的第一个字母采用大写是一种习惯的上的标准,但不是硬性规定。
- 还有在类声明末尾,必须有一个分号,这一点跟 C++ 结构情况相同。
类由变量和函数组成。类里边的变量成为属性,对象将使用那些变量来存储
信息;类里边的函数成为方法,调用那些函数来完成操作。
3.案例,创建车类
#include<iostream>class Car
{public://属性的声明: std::string color; //颜色 std::string engine; //引擎 float gas_tank; //油量 unsigned int Wheel; //轮子个数 //方法的声明: void fiill_tank(float liter);//加油,参数是公升 void runing(void);//跑起来
};//方法的实现:
void Car ::fiill_tank(float liter) //::作用域解析符 。这里的意思是:fiill_tank这个函数是属于Car类里边的
{gas_tank+=liter;
}int main()
{return 0; }
作用域解析操作符( :: )作用:告诉编译器这个方法存在于何处,或者说是属于哪一类。
- 其实我们对这个不应该感到陌生,从一个开始我们就不提倡 using namespace std; 这样偷懒的做法,所以我们是 std::cout 。。。
- 事实上 std::cout 所引用的是 std 里定义的 cout,而 std::string 数据类型其实也是一个对象。我们一直在使用对象,只是自己还不知道罢了。
4. 类中声明常量
C++ 允许在类里声明常量,但不允许对它进行赋值
class Car
{public:const float TANKSIZE = 85; // 出错 @_@
};
绕开这一限制的方法就是创建一个静态常量
class Car
{public:static const float FULL_GAS = 85;
}
5.声明类的同时创建类的对象
类似于使用结构的情况,可以在声明某个类的同时立刻创建一些该类的对象:(C++中允许但不提倡这样做)
class Car
{......
} car1, car2;
二、对象
1.创建对象
Car car;//创建一个Car对象car
2.访问成员
通过对象可以访问其公共成员变量和成员函数:对象.属性
car.color="red";
3.对象赋值给另一个对象
把一个对象赋值给另一个同类的对象,将会自动使同名的属性有同样的值。
Car car1, car2;
car1.setColor(“WHITE”);
......
car2 = car1;
三、完整代码
#include<iostream>class Car
{public://属性的声明: std::string color; //颜色 std::string engine; //引擎 float gas_tank; //油量 unsigned int Wheel; //轮子个数 //方法的声明: void fiill_tank(float liter);//加油,参数是公升 void runing(void);//跑起来
};//方法的实现:
void Car ::fiill_tank(float liter) //::作用域解析符 。这里的意思是:fiill_tank这个函数是属于Car类里边的
{gas_tank+=liter;
}
void Car::runing()
{std::cout<<"跑起来了,真酷!"<<"\n";
}int main()
{Car car;//创建一个Car对象car car.color="red";car.gas_tank=66.6;car.fiill_tank(6.6);car.runing(); std::cout<<"车的颜色:"<<car.color<<"\n";std::cout<<"车的油量:"<<car.gas_tank<<"\n";return 0; }
未完待续。。。
相关文章:
类 和 对象 的介绍
对象的本质是一种新的数据类型。类是一个模型,对象是类的一个具体化实例。为类创建实例也就是创建对象。 一、类(class) 类决定一个对象将是什么样的(有什么属性、功能)。类和变量一样,有名字。 1.创建类 …...
机器学习(1)—线性回归
文章目录 1. 算法定义2. 模型形式2.1. 简单线性回归(单变量):2.2. 多元线性回归(多变量): 3. 基本原理3.1. 误差函数:3.2. 求解回归系数 4. 假设条件5. 模型评估6. 优缺点7. 扩展方法8. 应用场景…...
macOS下SourceInsight的替代品
macOS 推荐的几款开源、轻量级、且功能类似于 SourceInsight 的源码阅读工具(排除 VS Code): 1. Zeal(离线文档 简单代码导航) 官网/GitHub: https://zealdocs.org/特点: 轻量级离线文档浏览器࿰…...
form实现pdf文件转换成jpg文件
说明: 我希望将pdf文件转换成jpg文件 请去下载并安装 Ghostscript,gs10050w64.exe 配置环境变量:D:\Program Files\gs\gs10.05.0\bin 本地pdf路径:C:\Users\wangrusheng\Documents\name.pdf 输出文件目录:C:\Users\wan…...
聊天室项目之http知识
一.http的核心组成部分(都分成请求的和响应的) 1.起始行:请求------------------------ 方法(Method):GET、POST、PUT、DELETE 等。 请求目标(Request Target):URL 路径…...
kubeadm部署 Kubernetes(k8s) 高可用集群 V1.28.2
1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 10台机器,操作系统Openeuler22.03 LTS SP4硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多,docker 数据卷单独挂…...
BUUCTF-web刷题篇(12)
21.easy_tornado Tornado大致可以分为四个主要组成部分: 一个web框架(包括RequestHandler创建Web应用程序的子类,以及各种支持类)。 HTTPServerHTTP(和AsyncHTTPClient)的客户端和服务器端实现。 一个异…...
基于 Netty 框架的 Java TCP 服务器端实现,用于启动一个 TCP 服务器来处理客户端的连接和数据传输
代码: package com.example.tpson_tcp;import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; imp…...
【Kafka基础】Kafka配置文件关键参数解析与单机生产环境配置指南
1 Kafka配置文件概述 Apache Kafka的配置文件是控制其行为的关键所在,合理的配置能够显著提升性能、可靠性和可维护性。Kafka主要涉及两个核心配置文件: server.properties:Broker主配置文件zookeeper.properties:ZooKeeper配置文…...
Kafka 漏消费和重复消费问题
Kafka 虽然是一个高可靠、高吞吐的消息系统,但如果使用不当,**“漏消费”和“重复消费”**问题是非常容易发生的,尤其在业务系统中会造成数据丢失、重复写库等严重问题。 🎯 一句话理解: Kafka 本身提供 “至多一次”…...
Mysql慢查询设置 和 建立索引
1 .mysql慢查询的设置 slow_query_log ON //或 slow_query_log_file /usr/local/mysql/data/slow.log long_query_time 2 修改后重启动mysql 1.1 查看设置后的参数 mysql> show variables like slow_query%; --------------------------------------------------…...
Windows程序中计时器WM_TIMER消息的使用
本文章是对《Windows程序设计》这本书第八章计时器的总结,如果有时间,可以去看书里的讲解,如果时间不充裕,想马上知道计时器该如何使用,欢迎阅读本文,本文已经将计时器的干货整理完毕! 什么是计…...
关于apple ios苹果mdm监管锁的漏洞与修复
前言 本人从2020年开始接触苹果mdm管理系统的开发 起初只是接触如何利用mdm进行app分发 23年开始开发mdm监管锁业务 随着手机租赁的市场兴起 mdm监管锁系统随即而生 注意 本人只是分享工作过程中遇到的一些问题 不接受苹果手机屏蔽以及解锁的业务 此文章仅做分享使用 MDM监…...
使用Geotools中的原始方法来操作PostGIS空间数据库
目录 前言 一、原生PostGIS连接介绍 1、连接参数说明 2、创建DataStore 二、工程实战 1、Maven Pom.xml定义 2、空间数据库表 3、读取空间表的数据 三、总结 前言 在当今数字化与信息化飞速发展的时代,空间数据的处理与分析已成为众多领域不可或缺的一环。从…...
C-S模式之实现一对一聊天
天天开心!!! 文章目录 一、如何实现一对一聊天?1. 服务器设计2. 客户端设计3. 服务端代码实现4. 客户端代码实现5. 实现说明6.实验结果 二、改进常见的服务器高并发方案1. 多线程/多进程模型2. I/O多路复用3. 异步I/O(…...
Kafka Consumer Group
Kafka 消费者组(Consumer Group) 是 Kafka 的核心机制之一!理解它对你掌握 Kafka 的高可用、高吞吐、负载均衡等能力非常关键。下面我来给你完整讲一讲👇 🧠 什么是 Kafka 消费者组(Consumer Group&#x…...
LangChain vs LlamaIndex:大模型应用开发框架深度对比与实战指南
一、引言:大模型时代的应用开发挑战 随着ChatGPT、LLaMA等大语言模型的爆发式发展,如何高效构建「大模型+垂直领域」的智能应用成为新课题。传统开发模式面临三大痛点: 数据交互复杂:大模型与本地数据的融合缺乏标准化接口功能扩展困难:链式调用、工具集成需要重复造轮子…...
第二章:访问远程服务_《凤凰架构:构建可靠的大型分布式系统》
第二章 访问远程服务 2.1 远程服务调用(RPC) 2.1.1 进程间通信机制 核心方式: 管道(Pipe):单向通信,用于父子进程信号(Signal):异步事件通知,不…...
一键自动备份:数据安全的双重保障
随着数字化时代的到来,数据已成为企业和个人不可或缺的核心资产。在享受数据带来的便捷与高效的同时,数据丢失的风险也随之增加。因此,备份文件的重要性不言而喻。本文将深入探讨备份文件的重要性,并介绍两种实用的自动备份方法&a…...
C++11之std::is_convertible
目录 1.简介 2.实现原理 3.使用场景 4.总结 1.简介 std::is_convertible 是 C 标准库 <type_traits> 头文件中的一个类型特性(type trait),它用于在编译时检查一个类型是否可以隐式转换为另一个类型。下面的原型: temp…...
从零开始:在Qt中使用OpenGL绘制指南
从零开始:在Qt中使用OpenGL绘制指南 本文只介绍基本的 QOpenGLWidget 和 QOpenGLFunctions 的使用,想要学习 OpenGL 的朋友,建议访问经典 OpenGL 学习网站:LearnOpenGL CN 本篇文章,我们将以绘制一个经典的三角形为例&…...
我的购物车设计思考:从个人项目到生产实战思考的蜕变
一、代码初体验:我踩过的那些坑 还记得大二做课程设计时,我写的购物车直接用ArrayList存商品,结果改数量时遍历半天找商品。现在看你这个HashMap实现,确实清爽很多,但有几点让我想起当年惨痛经历: 1. 线程…...
【算法实践】算法面试常见问题——数组的波浪排序
问题描述 给定一个无序整数数组,将其排列成波浪形数组。若数组 arr[0..n-1] 满足以下条件,则称为波浪形: arr[0] > arr[1] < arr[2] > arr[3] < arr[4] > ... 或 arr[0] < arr[1] > arr[2] < arr[3] > arr[4] &l…...
【大模型深度学习】如何估算大模型需要的显存
一、模型参数量 参数量的单位 参数量指的是模型中所有权重和偏置的数量总和。在大模型中,参数量的单位通常以“百万”(M)或“亿”(B,也常说十亿)来表示。 百万(M):表示…...
[论文阅读]PMC-LLaMA: Towards Building Open-source Language Models for Medicine
PMC-LLaMA:构建医学开源语言模型 摘要 最近,大语言模型在自然语言理解方面展现了非凡的能力。尽管在日常交流和问答场景下表现很好,但是由于缺乏特定领域的知识,这些模型在需要精确度的领域经常表现不佳,例如医学应用…...
`use_tempaddr` 和 `temp_valid_lft ` 和 `temp_prefered_lft ` 笔记250405
use_tempaddr 和 temp_valid_lft 和 temp_prefered_lft 笔记250405 以下是 Linux 系统中与 IPv6 临时隐私地址相关的三个关键参数 use_tempaddr、temp_valid_lft 和 temp_prefered_lft 的详细说明及协作关系: 📜 参数定义与功能 参数作用默认值依赖关…...
如何设置 JVM 内存参数(-Xms、-Xmx、-Xss 等)?
JVM 内存参数用于控制 Java 虚拟机使用的内存大小和行为。以下是一些常用的 JVM 内存参数及其设置方法: 1. 堆内存 (Heap Memory): -Xms<size>: 设置 JVM 初始堆大小 (initial heap size)。 例如:-Xms2g (初始堆大小为 2GB)默认值:物…...
【MATLAB TCP/IP客户端与NetAssist上位机双向通信实战指南】
MATLAB TCP/IP客户端与NetAssist上位机双向通信实战指南 一、前言 在工业控制和数据采集领域,TCP/IP通信是最常用的网络通信协议之一。MATLAB作为强大的科学计算软件,与各种上位机软件(如NetAssist)进行通信可以实现数据采集、设备控制和实时监控等功能…...
联合、枚举、类型别名
数据类型: 已学--整数、实数、字符、字符串、数组、指针、结构待学--向量(vector)类型:优于数组非主流的类型--联合(union)、枚举(enum) 一、联合 联合类似于结构,可以容…...
Array 和 ArrayList 有何区别?什么时候更适合用 Array?
面试官提问: 你能简要说明 Array 和 ArrayList 之间的主要区别吗?在什么场景下更适合使用 Array? 标准回答: 在 Java 中,Array(数组)和 ArrayList(动态数组)都可以用于存…...
对状态模式的理解
对状态模式的理解 一、场景二、不采用状态模式1、代码2、缺点 三、采用状态模式1、代码1.1 状态类1.2 上下文(这里指:媒体播放器)1.3 客户端 2、优点 一、场景 同一个东西(例如:媒体播放器),有一…...
【学Rust写CAD】31 muldiv255函数(muldiv255.rs)
源码 // Calculates floor(a*b/255 0.5) #[inline] pub fn muldiv255(a: u32, b: u32) -> u32 {// The deriviation for this formula can be// found in "Three Wrongs Make a Right" by Jim Blinn.let tmp a * b 128;(tmp (tmp >> 8)) >> 8 }代…...
使用VSCode编写C#程序
目录 一、环境搭建:构建高效开发基础1. 安装VSCode2. 配置.NET SDK3. 安装核心扩展 二、项目开发全流程1. 创建项目2. 代码编辑技巧3. 调试配置4. 高级调试技巧5. 编译与运行 三、常见问题解决指南1. 项目加载失败2. IntelliSense失效3. 代码格式化4. 典型编译错误&…...
chromadb
chromadb是一个轻量化的向量数据库,可以和llama-index等RAG框架使用。底层基于sqllite。 Getting Started - Chroma Docs 1、安装 $pip install chromadb pip install chromadb-client --在CS模式下,如果机器A上只需要安装客户端 2、可以使用客户端…...
第十章: 可观测性_《凤凰架构:构建可靠的大型分布式系统》
第十章: 可观测性 可观测性是现代分布式系统监控和故障排查的核心能力。本章从事件日志、链路追踪、聚合度量三个维度构建完整的可观测性体系,以下是各部分的重点解析与实践要点: 一、事件日志(Event Logging) 1. 核心目标 全链…...
vscode和cursor对ubuntu22.04的remote ssh和X-Windows的无密码登录
这里写自定义目录标题 写在前面需求的描述问题的引出 昨天已使能自动登录上午我的改变UBUNTU 22.04关闭密码规则一:修改 /etc/pam.d/common-password 文件二:修改 /etc/security/pwquality.conf 文件方法三:禁用 pam_pwquality.so 模块 vscod…...
Mlivus Cloud SDK v2的革新:性能优化与实战解析
作为大禹智库的向量数据库高级研究员王帅旭,我在过去30多年的AI应用实战中见证了向量数据库技术的演进历程。今天,我将从专业角度深入剖析Mlivus Cloud SDK v2的架构革新,特别是针对性能瓶颈问题的突破性解决方案。本文不仅会详细解析技术原理,还将提供可操作的优化建议,帮…...
stl_list的模拟实现
文章目录 stl_list的模拟实现迭代器的介绍以及分类stl_list的基本接口介绍stl_list的模拟实现结点类迭代器类基本迭代器操作 链表类链表基本操作 结语 我们今天又见面啦,给生活加点impetus!!开启今天的编程之路 作者:٩( ‘ω’ …...
【蓝桥杯】十五届省赛B组c++
目录 前言 握手问题 分析 排列组合写法 枚举 小球反弹 分析 代码 好数 分析 代码 R 格式 分析 代码 宝石组合 分析 代码 数字接龙 分析 代码 拔河 分析 代码 总结 前言 主播这两天做了一套蓝桥杯的省赛题目(切实感受到了自己有多菜&#x…...
变分自编码器(VAE)概念解析与用法实例:根据原图像生成新图像
目录 1. 前言 2. VAE原理 2.1 什么是VAE? 2.2 编码器(Encoder) 2.3 重参数化技巧(Reparameterization Trick) 2.4 解码器(Decoder) 2.5 损失函数 3. Pytorch实现:根据原图像…...
AI随身翻译设备:从翻译工具到智能生活伴侣
文章目录 AI随身翻译设备的核心功能1. 实时翻译2. 翻译策略3. 翻译流程4. 输出格式 二、AI随身翻译设备的扩展功能1. 语言学习助手2. 旅行助手3. 商务助手4. 教育助手5. 健康助手6. 社交助手7. 技术助手8. 生活助手9. 娱乐助手10. 应急助手 三、总结四、未来发展趋势࿰…...
基于大模型的重症肌无力的全周期手术管理技术方案
目录 技术方案文档1. 数据预处理模块2. 多任务预测模型架构3. 动态风险预测引擎4. 手术方案优化系统5. 技术验证模块6. 系统集成架构7. 核心算法清单8. 关键流程图详述实施路线图技术方案文档 1. 数据预处理模块 流程图 [输入原始数据] → [联邦学习节点数据对齐] → [多模态特…...
Linux常用命令详解:从基础到进阶
目录 一、引言 二、文件处理相关命令 (一)grep指令 (二)zip/unzip指令 编辑 (三)tar指令 (四)find指令 三、系统管理相关命令 (一)shutdown指…...
【全球首发】DeepSeek谷歌版1.1.5 - 免费GPT-4级别AI工具
【全球首发】DeepSeek谷歌版1.1.5 - 免费GPT-4级别AI工具 资源简介 DeepSeek谷歌版1.1.5是目前全球领先的免费AI助手,性能超越国内主流AI产品,提供类似GPT-4的智能体验。 版本信息 最新版本:1.1.5(2024最新版)应用…...
JWT认证服务
JSON Web Token(JWT)是一种用于在网络应用间安全地传递信息的紧凑、自包含的方式。以下是关于 JWT 认证服务器更详细的介绍,包括其意义、作用、工作原理、组成部分、时效性相关内容、搭建条件以及代码案例。 JWT 的意义与作用 意义…...
Raft算法
Raft算法用于保证分布式环境下多节点数据的一致性。 原理 Raft算法的主要思想是一个 选主(leader selection) 的算法思想,集群种每个节点都有可能成为三种角色。 三种角色 leader 对客户端通信的入口,对内数据同步的发起者,一个集群通常只…...
Kotlin 类委托深入解析:以 MMKV 为例看委托机制在 Android 中的巧妙应用
Kotlin 中的类委托(class delegation)是一个非常实用的特性,它允许我们将接口的实现交给另一个对象,从而简化代码,提升复用性和灵活性。本文将通过简单的 Demo 介绍类委托的基本用法,并以 Android 中的 MMK…...
2025年渗透测试面试题总结-某一线实验室实习扩展(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 某一线实验室实习扩展 一、流量分析深度实践 1. FTP反弹定时确认包流量检测 1.1 攻击原理与特征 1.…...
2025大唐杯仿真3——移动性管理
仅仅是1-2之间的信息交互...
云原生与微服务的关系
云原生(Cloud Native)和微服务(Microservices)是现代软件开发和部署中密切相关的两个概念,它们共同推动了应用程序的架构设计、开发模式和运维方式的变革。以下是两者的关系及核心要点: 定义与核心概念 云原…...