您的位置:首页 > 游戏 > 手游 > C++ 类域+类的对象大小

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

2024/12/25 22:26:46 来源:https://blog.csdn.net/Jason_from_China/article/details/142260511  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com