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

C++ 类域+类的对象大小

个人主页:Jason_from_China-CSDN博客

所属栏目:C++系统性学习_Jason_from_China的博客-CSDN博客

所属栏目:C++知识点的补充_Jason_from_China的博客-CSDN博客

概念概述

  • 类定义了一个新的作用域,类的所有成员都在类的作用域中,在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。
  • 类域影响的是编译的查找规则,下面程序中Init如果不指定类域Stack,那么编译器就把Init当成全局函数,那么编译时,找不到array等成员的声明/定义在哪里,就会报错。指定类域Stack,就是知道Init是成员函数,当前域找不到的array等成员,就会到类域中去查找。

 放到类里面实现(内联函数)

放到类里面实现此时是不需要写inline,编译器会自动认为是内联函数,从而进行编译

在类里面的实现和使用

在类域里面的使用,我们可以称之为内联函数

这也是类的最大特点,可以直接定义函数

class Date
{
public://公有
	//构造函数(全缺省构造函数)//内联函数
	Date(int year = 1, int month = 1, int day = 1)
	{
		_year = year;
		_month = month;
		_day = day;
	}

	void Func2();
private:
	//私有成员函数变量
	int _year;
	int _month;
	int _day;
};

类域的使用( ::)

在类外面的实现和使用

这里就涉及到,头文件和实现文件了,一般是把类放到.h文件里面,把实现放到.cpp文件里面

//.h
#include<iostream>
using namespace std;//取消打印折叠空间

class Date
{
public://公有
	void Func2();

private://私有

};

//类域的调用
void Date::Func2()
{
	cout << "类域的调用:" << endl;
}


此时我们发现我们去实现Func2,需要到类域里面去访问。

当然,我们也可以把类放到头文件,把实现放到实现文件里面,这个都是很灵活的

类的对象大小(内存对齐)

这里声明一下,类的对象大小其实和C语言里面结构体内存对齐的篇章差不大多,所以可以先看一下这一篇章,其实对于对象大小的内存对齐,主要就是会对齐,知道为什么需要有内存对齐就可以了

C语言-结构体的内存对齐(重点)_结构体内存对齐-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Jason_from_China/article/details/137005772


http://www.kler.cn/a/307387.html

相关文章:

  • win11 新建一个批处理,双击查看本机的IP地址
  • 从社交媒体到元宇宙:Facebook未来发展新方向
  • DevOps工程技术价值流:加速业务价值流的落地实践与深度赋能
  • -1大于4?负数与无符号整数类型:size_t的比较问题(strlen)
  • 算法——移除链表元素(leetcode203)
  • 除了 Postman,还有什么好用的 API 调试工具吗
  • 链动321模式开发系统解析源码
  • 电子连接器温升仿真教程 一
  • Linux per memcg lru lock
  • Spring Boot-缓存问题
  • k8s 容忍和污点
  • 晶源微电源IC型号表
  • ArcGIS Pro SDK (十四)地图探索 2 地图图层
  • 集群聊天服务器项目【C++】(五)网络模块和业务模块
  • FloodFill(洪水灌溉)算法专题——DFS深搜篇
  • 合宙Air201资产定位模组LuatOS入门课程:FOTA远程升级,点点鼠标就搞定
  • 初识爬虫4
  • 云曦2024秋季学期开学考复现
  • 【FreeRTOS】任务
  • 项目实现:云备份②(文件操作、Json等工具类的实现)
  • 每日一题——第九十二题
  • Unity Apple Vision Pro 开发(九):空间锚点
  • cJSON-轻量级解析模块、字符串的神——编织STM32C8T6与阿里云信息传递的纽带
  • MAVEN如何导入项目
  • [Web安全 网络安全]-文件读取与下载漏洞
  • Vue、React 生命周期有哪些?页面数据获取放在哪个生命周期做比较好?