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

类的实例化

类的实例化

class Date
{
public:void Init(int year, int month, int day){_year = year;_month = month;_day = day;}private:int _year;int _month;int _day;     //这只是函数的一个声明并没有定义
};

上面是一个类,我们可以把有花括号括起来的叫做一个域,所以我们叫可以叫上面的Date叫类域
既然是域,那我们可以用访问域的方法来访问上面的类域吗?
我们试一试:

我们输入:Date::_year;

发现编译器会报错。
在这里插入图片描述
在这里插入图片描述

这是为什么?

因为类中:只是变量的一个声明而已,并不是变量的定义。

变量的定义会开空间,而只是声明则不会开辟空间

所以我们定义一下就可以解决这个问题:

那什么时候才是定义呢?

Date d

这样就行了,对象的定义也就叫对象的实例化

这样就会开空间出来。
在这里插入图片描述

下面我们思考一个问题:类Date 和类实例化后的对象:d1 所占的空间是多少?

#include<iostream>
using namespace std;
class Date
{
public:void Init(int year, int month, int day){_year = year;_month = month;_day = day;}private:int _year;    //int 整型 4个字节int _month;int _day;     
};int main()
{Date d1;d1.Init(2023, 7, 9);Date d2;cout << sizeof(Date) << endl;cout << sizeof(d1) << endl;return 0;
}

答案是12 还是 16 ?

在这里插入图片描述
你会感到疑惑,private中的三个整型加起来就是12了,还有一个函数呢?,难道函数不死存放在这个类里面的吗?

是的,为了避免空间的浪费,会把函数存在公共的代码区

判断一下,下面的类有多少个字节?

//类中既有成员函数又有函数变量
class A1 {
public:void f1() {}
private:int _a;
};// 类中仅有成员函数
class A2 {
public:void f2() {}
};
// 类中什么都没有---空类
class A3
{};

sizeof 输出的结果是:

cout << sizeof(A1) << endl;cout << sizeof(A2) << endl;cout << sizeof(A3) << endl;

在这里插入图片描述

为啥,你说A1是4都还好理解,但是A2,A3是怎么回事?
之前说过成员函数不是存放在类里面的,所以A2中有个成员函数不影响。
A2 和 A3 的字节数是一样的,但是,为什么是1 不是 0 ?
A3 中啥都没有呀?
因为 这一个字节是用来占位 的。c++ 针对这种没有成员变量的类,给它分配了一个字节用来占位, 这一个字节并不是用来存储数据的,只是表示这个类存在过。

相关文章:

类的实例化

类的实例化 class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; //这只是函数的一个声明并没有定义 };上面是一个类&#xff0c;我们可以把有花括号括起来的叫做一个域&#xff…...

智能提词器有哪些?了解一下这款提词工具

智能提词器有哪些&#xff1f;使用智能提词器可以帮助你更好地准备和交付演讲、报告或其他提词场合。它可以提高你的效率&#xff0c;节省你的时间&#xff0c;并让你更加自信地与听众沟通。另外&#xff0c;智能提词器还可以提供一些有用的功能&#xff0c;如语音识别、智能建…...

oracle 19c rac环境配置firewalld

rac环境ip地址说明 [rootdb1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.100.19 db1 172.16.100.30 …...

Flutter 之Bloc入门指南实现倒计时功能

Flutter Timer By Bloc 前言Stream.periodic实现倒计时定义Bloc状态定义Bloc事件定义Bloc组件定义View层参考资料前言 使用Bloc开发Flutter的项目,其项目结构都很简单明确,需要创建状态,创建事件,创建bloc,创建对应的View。flutter_timer项目来分析下Bloc的使用方法。 通…...

目标识别数据集互相转换——xml、txt、json数据格式互转

VOC数据格式与YOLO数据格式互转 1.VOC数据格式 VOC&#xff08;Visual Object Classes&#xff09;是一个常用的计算机视觉数据集&#xff0c;它主要用于对象检测、分类和分割任务。VOC的标注格式&#xff0c;也被许多其他的数据集采用&#xff0c;因此理解这个数据格式是很重…...

211. 添加与搜索单词 - 数据结构设计---------------字典树

211. 添加与搜索单词 - 数据结构设计 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 211. 添加与搜索单词 - 数据结构设计 https://leetcode.cn/problems/design-add-and-search-words-data-structure/descriptio…...

SQL Server通过指令备份数据库和恢复数据库

数据库备份&#xff1a; backup database [MyTestDB]to diskD:\MyTestDB_20200101.bakwith format,init,stats1,compression 数据库恢复&#xff1a; restore database MyTestDB_newfrom diskD:\MyTestDB_20200101.bakwith move MyTestDB to D:\MyTestDB_new.mdf,move MyTest…...

windows如何上架ios应用到app store

Application Uploader iOS App上架工具是一款非常好用的针对iOS苹果应用程序软件开发的实用编程工具&#xff0c;它的主要作用是帮助用户进行快速的程序应用设计和程序应用调试&#xff0c;节省用户进行软件开发耗费的不必要时间&#xff01; ​ 编辑切换为居中 添加图片注释&…...

Hadoop学习日记-YARN组件

YARN(Yet Another Resource Negotiator)作为一种新的Hadoop资源管理器&#xff0c;是另一种资源协调者。 YARN是一个通用的资源管理系统和调度平台&#xff0c;可为上层应用提供统一的资源管理和调度 YARN架构图 YARN3大组件&#xff1a; &#xff08;物理层面&#xff09…...

汽车过户时,怎么选到理想的好车牌?

在汽车过户的过程中&#xff0c;选到一副理想的好车牌就像买彩票中大奖一样令人兴奋。但是&#xff0c;怎样找到这样一块车牌呢&#xff1f;这就是本文要探讨的问题。 首先&#xff0c;我们来聊聊选车牌的技巧。很多人喜欢选择有特别数字的车牌&#xff0c;如“8888”、“6666”…...

力扣468 验证IP地址

ipv4地址&#xff1a;1.必须是四个非空子串 2.每个非空子串不含前导零 3.子串里字符只能是0~255 ipv6地址&#xff1a;1.必须是八个非空子串 2。每段非空串得长度是否在1~4之间&#xff0c;且不含0-9&#xff0c;a-f&#xff0c;A-F之外得字符。 3.同时0-9也不允许含前导零 cl…...

前端静态登录页面实现

<template> <!-- <el-button type="primary" @click="handleLogin">测试登录</el-button>--> <!-- <el-button type="danger" @click="handleUserList">测试获取用户请求</el-button>-->…...

华为数通HCIA-网络参考模型(TCP/IP)

网络通信模式 作用&#xff1a;指导网络设备的通信&#xff1b; OSI七层模型&#xff1a; 7.应用层&#xff1a;由应用层协议&#xff08;http、FTP、Telnet.&#xff09;为应用程序产生对应的数据&#xff1b; 6.表示层&#xff1a;将应用层产生的数据转换成网络设备看得懂…...

java快速生成数据库表文档(HTML、DOC、MD)

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出&#xff0c;关于数据库表结构文档状态&#xff1a;要么没有、要么有、但都是手写、后期运维开发&#xff0c;需要手动进行维护到文档中&#xff0c;很是繁琐&#xff0c;这里推荐一个开源项目&#xff1a;screw gi…...

Dojo学习和常用知识

目录 一、Dojo 的基本概念二、Dojo 的组件和模板三、Dojo 的应用场景四、Dojo 的未来发展五、学习 Dojo 的大纲和建议&#xff1a;六、Dojo 代码示例&#xff1a; Dojo 是一个流行的 JavaScript 库&#xff0c;用于开发 Web 应用程序。它提供了许多功能&#xff0c;如 DOM 操作…...

媒体查询详解

引言 媒体查询是 CSS3 的一个新的技术&#xff0c;它使我们可以针对不同的设备&#xff08;或者说&#xff0c;不同的屏幕尺寸和分辨率&#xff09;来应用不同的样式。 媒体查询包含一个媒体类型和至少一个使用宽度、高度、颜色等条件限制的表达式。CSS 用于桌面电脑的屏幕可…...

华为数通HCIP-IGMP(网络组管理协议)

IGMP&#xff08;网络组管理协议&#xff09; 作用&#xff1a;维护、管理最后一跳路由器以及组播接收者之间的关系&#xff1b; 应用&#xff1a;最后一跳路由器以及组播接收者之间&#xff1b; 原理&#xff1a;当组播接收者需要接收某个组别的流量时&#xff0c;会向最后…...

价格管控有哪些有效的方法

品牌在面对线上店铺的低价、窜货时&#xff0c;需要及时进行干预治理&#xff0c;否则低价效应会蔓延&#xff0c;会有越来越多的店铺跟价&#xff0c;导致渠道更加混乱&#xff0c;但是管控价格也非一时之事&#xff0c;需要品牌按流程治理。 力维网络有多年价格管控经验&…...

【Docker】Docker相关基础命令

目录 一、Docker服务相关命令 1、启动docker服务 2、停止docker服务 3、重启docker服务 4、查看docker服务状态 5、开机自启动docker服务 二、Images镜像相关命令 1、查看镜像 2、拉取镜像 3、搜索镜像 4、删除镜像 三、Container容器相关命令 1、创建容器 2、查…...

掌握Python的X篇_16_list的切片、len和in操作

接上篇掌握Python的X篇_15_list容器的基本使用&#xff0c;本篇进行进一步的介绍。 文章目录 1. list的索引下标可以是负数2. 切片&#xff08;slice&#xff09;2.1 切片基础知识2.2 如何“取到尽头”2.3 按照步长取元素2.4 逆序取值 3. len函数获取lis的元素个数4. in操作符…...

Simple Form终极指南:如何快速构建高效Rails表单验证系统

Simple Form终极指南&#xff1a;如何快速构建高效Rails表单验证系统 【免费下载链接】simple_form Forms made easy for Rails! Its tied to a simple DSL, with no opinion on markup. 项目地址: https://gitcode.com/gh_mirrors/si/simple_form Simple Form是一款强大…...

MySQL视图与子查询的那些事儿:从报错1349看数据库设计的最佳实践

MySQL视图与子查询深度解析&#xff1a;从报错1349看高效数据库设计 在数据库开发与维护过程中&#xff0c;视图(View)和子查询(Subquery)是两种极为常用的技术手段。它们能够简化复杂查询、提高代码复用性&#xff0c;并为数据安全提供额外保障。然而&#xff0c;当这两种技术…...

PCB文件查看工具探索:OpenBoardView如何突破电路分析效率瓶颈

PCB文件查看工具探索&#xff1a;OpenBoardView如何突破电路分析效率瓶颈 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 电子工程师们常面临这样的困境&#xff1a;面对复杂的.brd格式文件&#xff0c;要…...

nli-distilroberta-base开源协作:使用GitHub管理模型微调与实验代码

nli-distilroberta-base开源协作&#xff1a;使用GitHub管理模型微调与实验代码 1. 为什么需要GitHub管理AI项目 当你开始一个AI项目时&#xff0c;代码版本管理往往是最容易被忽视的环节。想象一下这样的场景&#xff1a;你花了三天时间调整模型参数&#xff0c;效果提升了5…...

扩散薛定谔桥(Diffusion Schrödinger Bridge)

扩散薛定谔桥&#xff08;Diffusion Schrdinger Bridge&#xff09; 1. 概述 扩散薛定谔桥&#xff08;Diffusion Schrdinger Bridge, DSB&#xff09;是一类在两个端点分布之间学习随机过渡动力学的方法。其核心目标不是仅恢复终点样本&#xff0c;而是构造一条满足边界约束…...

Blender Python API实战:AI辅助3D建模自动化脚本开发

1. 为什么需要AI辅助Blender脚本开发 第一次打开Blender时&#xff0c;相信很多人都会被它复杂的界面吓到。密密麻麻的菜单栏、数不清的快捷键、各种专业术语...作为一个从Maya转战Blender的老3D设计师&#xff0c;我完全理解这种挫败感。但后来发现&#xff0c;Blender最强大的…...

Neeshck-Z-lmage_LYX_v2真实生成:‘赛博长安,霓虹古建,未来主义’提示词多LoRA适配效果

Neeshck-Z-lmage_LYX_v2真实生成&#xff1a;‘赛博长安&#xff0c;霓虹古建&#xff0c;未来主义’提示词多LoRA适配效果 1. 引言&#xff1a;当古都长安遇见赛博霓虹 想象一下&#xff0c;你站在一座宏伟的古代宫殿前&#xff0c;飞檐斗拱&#xff0c;雕梁画栋&#xff0c…...

AI Toolkit for Visual Studio Code完全指南:从环境配置到应用部署的AI开发工具链实践

AI Toolkit for Visual Studio Code完全指南&#xff1a;从环境配置到应用部署的AI开发工具链实践 【免费下载链接】vscode-ai-toolkit 项目地址: https://gitcode.com/GitHub_Trending/vs/vscode-ai-toolkit 工具认知篇&#xff1a;重新定义AI开发流程 AI开发工具链正…...

新手避坑指南:雯雯的后宫-造相Z-Image-瑜伽女孩镜像部署全流程解析

新手避坑指南&#xff1a;雯雯的后宫-造相Z-Image-瑜伽女孩镜像部署全流程解析 1. 镜像概述与核心价值 雯雯的后宫-造相Z-Image-瑜伽女孩是一个专注于生成高质量瑜伽主题图像的文生图模型服务。基于Z-Image-Turbo底座并结合特定LoRA微调技术&#xff0c;该镜像能够生成风格统…...

ExifToolGUI完全指南:让照片元数据管理效率倍增的实用技巧

ExifToolGUI完全指南&#xff1a;让照片元数据管理效率倍增的实用技巧 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 还在为照片位置管理烦恼&#xff1f;这款工具让地理标记效率提升300%。ExifToolGUI作为…...