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

专业做外贸网站公司教育类网站开发费用

专业做外贸网站公司,教育类网站开发费用,深圳建设交易中心官网,财务软件免费版C中将 sizeof() 用于类 您知道,通过使用关键字 class 声明自定义类型,可封装数据属性和使用数据的方法。运算符 sizeof( )用于确定指定类型需要多少内存,单位为字节。这个运算符也可用于类,在这种情况下,它将指出类声…

C++中将 sizeof() 用于类

您知道,通过使用关键字 class 声明自定义类型,可封装数据属性和使用数据的方法。运算符 sizeof( )用于确定指定类型需要多少内存,单位为字节。这个运算符也可用于类,在这种情况下,它将指出类声明中所有数据属性占用的总内存量,单位为字节。 sizeof( )可能对某些属性进行填充,使其与字边界对齐,也可能不这样做,这取决于您使用的编译器。用于类时, sizeof() 不考虑成员函数及其定义的局部变量,如以下示例程序所示:

#include <iostream>
#include <string.h>
using namespace std;class MyString
{
private:char* buffer;public:MyString(const char* initString) // default constructor{buffer = NULL;if(initString != NULL){buffer = new char [strlen(initString) + 1];strcpy(buffer, initString);}}MyString(const MyString& copySource) // copy constructor{buffer = NULL;if(copySource.buffer != NULL){buffer = new char [strlen(copySource.buffer) + 1];strcpy(buffer, copySource.buffer);}}~MyString(){delete [] buffer;}int GetLength() { return strlen(buffer); }const char* GetString(){ return buffer; }
};class Human
{
private:int age;bool gender;MyString name;public:Human(const MyString& InputName, int InputAge, bool InputGender): name(InputName), age (InputAge), gender(InputGender) {}int GetAge (){ return age; }
};int main()
{MyString mansName("Adam");MyString womansName("Eve");cout << "sizeof(MyString) = " << sizeof(MyString) << endl;cout << "sizeof(mansName) = " << sizeof(mansName) << endl;cout << "sizeof(womansName) = " << sizeof(womansName) << endl;Human firstMan(mansName, 25, true);Human firstWoman(womansName, 18, false);cout << "sizeof(Human) = " << sizeof(Human) << endl;cout << "sizeof(firstMan) = " << sizeof(firstMan) << endl;cout << "sizeof(firstWoman) = " << sizeof(firstWoman) << endl;return 0;
}

使用 32 位编译器的输出:

sizeof(MyString) = 4
sizeof(mansName) = 4
sizeof(womansName) = 4
sizeof(Human) = 12
sizeof(firstMan) = 12
sizeof(firstWoman) = 12

使用 64 位编译器的输出:

sizeof(MyString) = 8
sizeof(mansName) = 8
sizeof(womansName) = 8
sizeof(Human) = 16
sizeof(firstMan) = 16
sizeof(firstWoman) = 16

分析:
这个示例很长,它包含 MyString 类和 Human 类。其中的 Human 类使用 MyString 对象来存储姓名( name),并新增了 bool 数据成员 gender。
首先来分析输出。从中可知,将 sizeof( )用于类及其对象时,结果相同。 sizeof(MyString) 和 sizeof(mansName)的值相同,因为类占用的字节数在编译阶段就已确定。虽然 mansName 包含 Adam,而 womanName 包含 Eve,但它们占用的字节数相同,这没什么可奇怪的,因为存储姓名的 MyString::buffer 是一个 char *,这是一个大小固定的指针(在 32 位系统中,为 4 字节),而与指向的数据量无关。
将 sizeof( )用于 Human 时,结果为 12。第 44~46 行表明, Human 包含一个 int 成员、一个 bool 成员和一个 MyString 成员。要获悉内置类型占用的字节数。从该程序清单可知, int 占用 4 字节, bool 占用 1 字节,而 MyString 占用 4 字节。它们的总和与输出中的 12 字节不符,这是因为 sizeof( )的结果受字填充( word padding)和其他因素的影响。

该文章会更新,欢迎大家批评指正。

推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程

http://www.yayakq.cn/news/968298/

相关文章:

  • 做网站在哪个程序做厦门做网站哪家公司好
  • 台州建设局招标投标网站常州小程序开发报价
  • 哪个网站可以代做软件c++网站开发
  • 苏州设计网页网站好做网站买别人的服务器
  • 潍坊模板建站平台建行企业银行官网
  • 平昌城乡与住房建设部网站阿里云建站视频教程
  • 个人网站可以做电商吗wordpress枚举用户名
  • 公司域名备案网站名称用动易建设网站教程
  • 网站开发项目组团队百度网络推广怎么做
  • 唐河微网站建设wordpress支付宝免插件
  • 长安网站建设制作公司六数字域名做网站好不好
  • 专门做招商的网站是什么网站建设流程代理商
  • dreamware怎么做网站天津代理记账
  • 不是营销型的网站广州网站建设公司兴田德润怎么样
  • 找家里做的工作上哪个网站手机制作软件
  • 网站大全2021网站做外链推广的常用方法
  • 简单公司网站网件路由器app 中文版
  • 公司网站突然打不开了微信网站开发js框架
  • 朋友做网站网站挣了好多钱网站建设怎么骗人
  • 长春网站设计团队虚拟资源交易商城wordpress
  • 一般网站的费用湖北seo服务
  • 公众号中微网站开发抖音网络营销案例分析
  • 汕头网站制作哪家强赤峰市住房和城乡建设局官方网站
  • 青岛网站设计公司排名做淘宝客为什么要建网站
  • 中建设计集团网站营销企业网站建设步骤
  • 重庆企业做网站多少钱网页转向功能网站
  • 校园网站建设项目总结报告wordpress在lnmp部署
  • 电商网站建设方面的毕业设计wordpress分类目录表
  • 河南专业网站建设公司推荐哪个网站可以接针织衫做单
  • 百度站长工具后台cms进行网站开发