当前位置: 首页 > 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.dt0577.cn/news/25165.html

相关文章:

  • 网站建设 东莞1688官网入口
  • 网站开发功能需求清单输入关键词自动生成文章
  • wordpress 目录 导航站百度站长平台论坛
  • 绿色食品网站建设可行性网络销售的好处和意义
  • 广州网站建设品牌seo计费系统源码
  • 公司支付网站款做凭证亚马逊alexa
  • 怎么注销建设银行网站用户名seo全称是什么意思
  • 海外网站seo优化简述常用的网络营销方法
  • 装修设计公司网站营销推广ppt
  • 旅游网站建设分析如何做好口碑营销
  • wordpress 商城 支付宝北京百度seo排名
  • 公司无网站无平台怎么做外贸广州网站优化页面
  • 网站建设项目报告总结b站推广引流最佳方法
  • 俄语企业网站制作做销售找客户渠道
  • 做相片网站app软件推广怎么做
  • 得到app官网商品标题seo是什么意思
  • css层叠样式表基础教程诊断网站seo现状的方法
  • 建设公司企业网站网站推广外贸
  • iis做的网站如何添加播放器百度app官方下载
  • 建设网站的风险6seo是哪个国家
  • 网站建设优化文章适合企业员工培训的课程
  • 网站设计 字体seo自动优化工具
  • 网站建设合同表(书)深圳十大网络推广公司排名
  • 青岛公司网站建设企业网站制作费用
  • 在国内做跨境电商怎么上外国网站做seo如何赚钱
  • ps做电商网站图标人工智能培训心得
  • 美国做礼品的网站app广告联盟
  • 动态网页网站谷歌paypal官网下载
  • 网站建设的项目描述上海搜索推广
  • 呼和浩特网站建设设计天津关键词优化网站