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

类 和 对象 的介绍

  • 对象的本质是一种新的数据类型。
  • 类是一个模型,对象是类的一个具体化实例。为类创建实例也就是创建对象。

一、类(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; } 



未完待续。。。

相关文章:

类 和 对象 的介绍

对象的本质是一种新的数据类型。类是一个模型&#xff0c;对象是类的一个具体化实例。为类创建实例也就是创建对象。 一、类&#xff08;class&#xff09; 类决定一个对象将是什么样的&#xff08;有什么属性、功能&#xff09;。类和变量一样&#xff0c;有名字。 1.创建类 …...

`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 的详细说明及协作关系&#xff1a; &#x1f4dc; 参数定义与功能 参数作用默认值依赖关…...

LeetCode详解之如何一步步优化到最佳解法:20. 有效的括号

LeetCode详解系列的总目录&#xff08;持续更新中&#xff09;&#xff1a; LeetCode详解之如何一步步优化到最佳解法&#xff1a;前100题目录&#xff08;更新中...&#xff09;-CSDN博客 LeetCode详解系列的上一题链接&#xff1a; LeetCode详解之如何一步步优化到最佳解法…...

学习笔记,DbContext context 对象是保存了所有用户对象吗

DbContext 并不会将所有用户对象保存在内存中&#xff1a; DbContext 是 Entity Framework Core (EF Core) 的数据库上下文&#xff0c;它是一个数据库访问的抽象层它实际上是与数据库的一个连接会话&#xff0c;而不是数据的内存缓存当您通过 _context.Users 查询数据时&…...

【2020】【论文笔记】基于二维光子晶体的光控分光比可调Y——

前言 类型 太赫兹 + 分束器 太赫兹 + 分束器 太赫兹+分束器 期刊 红外与毫米波学报 红外与毫米波学报 红外与毫米波学报 作者 姜宗丹 , 李培丽 ,...

Mydumper备份数据库

介绍&#xff1a; MyDumper是一个MySQL逻辑备份工具。它有2个工具&#xff1a; mydumper负责导出 MySQL 数据库的一致备份myloader从 mydumper 读取备份&#xff0c;连接到目标数据库并导入备份。 这两个工具都使用多线程功能。 下载链接&#xff1a; https://github.com/m…...

BN测试和训练时有什么不同, 在测试时怎么使用?

我们来彻底搞懂 Batch Normalization&#xff08;BN&#xff09; 在训练和测试阶段的区别&#xff0c;以及 测试时怎么用。 &#x1f9e0; 一句话总结&#xff1a; 训练时&#xff1a;使用 当前 mini-batch 的均值和方差 测试时&#xff1a;使用 整个训练集估计的“滑动平均均值…...

JavaWeb 课堂笔记 —— 02 JavaScript

本系列为笔者学习JavaWeb的课堂笔记&#xff0c;视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程&#xff0c;实现javaweb企业开发全流程&#xff08;涵盖SpringMyBatisSpringMVCSpringBoot等&#xff09;》&#xff0c;章节分布参考视频教程&#xff0c;为同样学习…...

多GPU训练

写在前面 限于财力不足&#xff0c;本机上只有一个 GPU 可供使用&#xff0c;因此这部分的代码只能够稍作了解&#xff0c;能够使用的 GPU 也只有一个。 多 GPU 的数据并行&#xff1a;有几张卡&#xff0c;对一个小批量数据&#xff0c;有几张卡就分成几块&#xff0c;每个 …...

Java面试黄金宝典33

1. 什么是存取控制、 触发器、 存储过程 、 游标 存取控制 定义&#xff1a;存取控制是数据库管理系统&#xff08;DBMS&#xff09;为保障数据安全性与完整性&#xff0c;对不同用户访问数据库对象&#xff08;如表、视图等&#xff09;的权限加以管理的机制。它借助定义用户…...

如何在 Linux 上安装 Python

本指南介绍如何在Linux机器上安装 Python。Python 已成为开发人员、数据科学家和系统管理员必不可少的编程语言。它用于各种应用&#xff0c;包括 Web 开发、数据科学、自动化和机器学习。 本综合指南将引导您完成在 Linux 系统上安装Python的过程&#xff0c;涵盖从基本包管理…...

系统与网络安全------Windows系统安全(6)

资料整理于网络资料、书本资料、AI&#xff0c;仅供个人学习参考。 共享文件夹 发布共享文件夹 Windows共享概述 微软公司推出的网络文件/打印机服务系统 可以将一台主机的资源发布给其他主机共有 共享访问的优点 方便、快捷相比光盘 U盘不易受文件大小限制 可以实现访问…...

解决 Spring Boot 返回日期格式问题

springboot项目有个属性这样注解 DateTimeFormat(pattern "yyyy-MM-dd") private Date createTime; 表中是 create_time datetime DEFAULT NULL 只使用了 DateTimeFormat 注解来处理输入格式&#xff0c;但没有配置输出格式。返回给前端还是 createTime: "2…...

复古千禧Y2风格霓虹发光酸性镀铬金属短片音乐视频文字标题动画AE/PR模板

踏入时光机&#xff0c;重温 21 世纪初大胆、未来主义和超光彩的美学&#xff01;这是一个动态的 After Effects 模板&#xff0c;旨在重现千禧年的标志性视觉效果——铬反射、霓虹灯发光、闪亮的金属和流畅的动态图形。无论您是在制作时尚宣传片、怀旧音乐视频还是时尚的社交媒…...

linux 安装 mysql记录

sudo apt-get install mysql-server 一直报错&#xff0c;按照下面的终于安装出来了 这个链接 https://cn.linux-console.net/?p13784 第 1 步&#xff1a;要删除 MySQL 及其所有依赖项&#xff0c;请执行以下命令&#xff1a; sudo apt-get remove --purge mysql* 第 2 步…...

如何设计一个本地缓存

想获取更多高质量的Java技术文章&#xff1f;欢迎访问Java技术小馆官网&#xff0c;持续更新优质内容&#xff0c;助力技术成长 Java技术小馆官网https://www.yuque.com/jtostring 如何设计一个本地缓存 随着系统的复杂性和数据量的增加&#xff0c;如何快速响应用户请求、减…...

NLP/大模型八股专栏结构解析

1.transformer 结构相关 &#xff08;1&#xff09;transformer的基本结构有哪些&#xff0c;分别的作用是什么&#xff0c;代码实现。 NLP高频面试题&#xff08;一&#xff09;——Transformer的基本结构、作用和代码实现 &#xff08;2&#xff09;LSTM、GRU和Transformer结…...

grep命令: 过滤

[rootxxx ~]# grep root /etc/passwd [rootxxx ~]# grep -A 2 root /etc/passwd -A #匹配行后两行 [rootxxx ~]# grep -B 2 root /etc/passwd -B #匹配行前两行 [rootxxx ~]# grep -C 2 root /etc/passwd -C #前后2行 [rootxxx ~]# grep -n root /…...

SpringBoot洗衣店订单管理系统设计与实现

一个基于SpringBoot的洗衣店订单管理系统的设计与实现。 系统概述 支持管理员管理顾客与店家信息、店家管理店铺与洗衣信息&#xff0c;以及顾客预约、查看洗衣信息与交流等功能。 部分功能模块 1. 管理员模块 ​顾客信息管理 ​店家信息管理 2. 店家模块 ​店铺信息管 …...

模版的特性及其编译分离

1.模版的分类 模版参数分为 类型形参 和 非类型形参 类型形参&#xff1a;出现在模版参数列表中&#xff0c;跟在class和typename之后的参数类型名称 非类型形参&#xff1a;就是用一个常量作为类&#xff08;函数&#xff09;模版的一个参数&#xff0c;在类&#xff08;函…...

基于 Ubuntu 24.04 LTS(Noble Numbat)的完整安装指南

以下是基于 Ubuntu 24.04 LTS&#xff08;Noble Numbat&#xff09;的完整安装指南&#xff0c;整合了多平台安装方法与优化建议&#xff0c;涵盖物理机、虚拟机及服务器场景&#xff1a; 一、准备工作 1. 系统要求 硬件配置&#xff1a; CPU&#xff1a;2 GHz双核或更高 内存…...

7-12 最长对称子串(PTA)

对给定的字符串&#xff0c;本题要求你输出最长对称子串的长度。例如&#xff0c;给定Is PAT&TAP symmetric?&#xff0c;最长对称子串为s PAT&TAP s&#xff0c;于是你应该输出11。 输入格式&#xff1a; 输入在一行中给出长度不超过1000的非空字符串。 输出格式&…...

NO.66十六届蓝桥杯备战|基础算法-贪心-区间问题|凌乱的yyy|Rader Installation|Sunscreen|牛栏预定(C++)

区间问题是另⼀种⽐较经典的贪⼼问题。题⽬⾯对的对象是⼀个⼀个的区间&#xff0c;让我们在每个区间上做出取舍。 这种题⽬的解决⽅式⼀般就是按照区间的左端点或者是右端点排序&#xff0c;然后在排序之后的区间上&#xff0c;根据题⽬要求&#xff0c;制定出相应的贪⼼策略&…...

搭建redis主从同步实现读写分离(原理剖析)

搭建redis主从同步实现读写分离(原理剖析) 文章目录 搭建redis主从同步实现读写分离(原理剖析)前言一、搭建主从同步二、同步原理 前言 为什么要学习redis主从同步&#xff0c;实现读写分析。因为单机的redis虽然是基于内存&#xff0c;单机并发已经能支撑很高。但是随着业务量…...

Rust切片、结构体、枚举

文章目录 切片类型字符串切片其他结构的切片 结构体结构体实例元组结构体结构体所有权输出结构体结构体的方法结构体关联函数单元结构体 枚举match语法Option枚举类if let 语句 切片类型 切片&#xff08;Slice&#xff09;是对数据值的部分“引用” 我们可以从一个数据集合中…...

使用人车关系核验API快速核验车辆一致性

一、 引言 随着车辆交易的日益频繁&#xff0c;二手车市场和金融领域的汽车抵押业务蓬勃发展。然而&#xff0c;欺诈和盗窃行为也时有发生&#xff0c;给行业带来了不小的冲击。例如&#xff0c;3月20日央视曝光的“新能源车虚假租赁骗补”产业链&#xff0c;以及某共享汽车平…...

【学习笔记】深度学习环境部署相关

文章目录 [AI硬件科普] 内存/显存带宽&#xff0c;从 NVIDIA 到苹果 M4[工具使用] tmux 会话管理及会话持久性[A100 02] GPU 服务器压力测试&#xff0c;gpu burn&#xff0c;cpu burn&#xff0c;cuda samples[A100 01] A100 服务器开箱&#xff0c;超微平台&#xff0c;gpu、…...

股票日数据使用_未复权日数据生成前复权日周月季年数据

目录 前置&#xff1a; 准备 代码&#xff1a;数据库交互部分 代码&#xff1a;生成前复权 日、周、月、季、年数据 前置&#xff1a; 1 未复权日数据获取&#xff0c;请查看 https://blog.csdn.net/m0_37967652/article/details/146435589 数据库使用PostgreSQL。更新日…...

Java程序设计第1章:概述

一、Hello World 1.代码&#xff1a; public class HelloWorld {public static void main(String[] args){System.out.println("Hello World!");} } 2.运行结果&#xff1a; Hello World! 二、输出姓名、学号、班级 1.题目&#xff1a; 编写一个Application&a…...

【LeetCode Solutions】LeetCode 146 ~ 150 题解

CONTENTS LeetCode 146. LRU 缓存&#xff08;中等&#xff09;LeetCode 147. 对链表进行插入排序&#xff08;中等&#xff09;LeetCode 148. 排序链表&#xff08;中等&#xff09;LeetCode 149. 直线上最多的点数&#xff08;困难&#xff09;LeetCode 150. 逆波兰表达式求值…...