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

金融商城快捷申请网站模板下载北京网讯百度科技有限公司

金融商城快捷申请网站模板下载,北京网讯百度科技有限公司,电子产品首页网站版模,浙江网站建设制作以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 对象被创建时会在栈区或者堆区分配内存。我们直观的认识是,如果创建了 10 个对象,就要分别为这 10 个对象的成员变量和成员函数分配内存,如下图所示…

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。

对象被创建时会在栈区或者堆区分配内存。我们直观的认识是,如果创建了 10 个对象,就要分别为这 10 个对象的成员变量和成员函数分配内存,如下图所示:

不同对象的成员变量的值可能不同,因此需要单独分配内存来存储。

但是不同对象的成员函数的代码是一样的,上面的内存模型保存了 10 份相同的代码片段,会浪费不少空间。我们可以将这些代码片段压缩成一份,事实上编译器也是这样做的:编译器将成员变量和成员函数分开存储,即分别为每个对象的成员变量分配内存,但是所有对象都共享同一段函数代码。如下图所示:

成员变量在堆区或栈区分配内存,成员函数在代码区分配内存。

【示例】使用 sizeof 获取对象所占内存的大小:

#include <iostream>
using namespace std;class Student{
private:char *m_name;int m_age;float m_score;
public:void setname(char *name);void setage(int age);void setscore(float score);void show();
};void Student::setname(char *name){m_name = name;
}
void Student::setage(int age){m_age = age;
}
void Student::setscore(float score){m_score = score;
}
void Student::show(){cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;
}int main(){//在栈上创建对象Student stu;cout<<sizeof(stu)<<endl;//在堆上创建对象Student *pstu = new Student();cout<<sizeof(*pstu)<<endl;//类的大小cout<<sizeof(Student)<<endl;return 0;
}

运行结果:
12
12
12

Student 类包含三个成员变量,它们的类型分别是 char *、int、float,都占用 4 个字节的内存,加起来共占用 12 个字节的内存。通过 sizeof 求得的结果等于 12,恰好说明对象所占用的内存仅仅包含了成员变量。

类是一种复杂的数据类型,也可以使用 sizeof 求得该类型的大小。从运行结果可以看出,在计算类这种类型的大小时,只计算成员变量的大小,并没有把成员函数也包含在内。也就是说,对象的大小只受成员变量的影响,和成员函数没有关系。

假设 stu 的起始地址为 0X1000,那么该对象的内存分布如下图所示:

m_name、m_age、m_score 按照声明的顺序依次排列,和结构体非常类似,也会有内存对齐的问题。比如,如果修改类的成员变量如下,则该类型的大小变为16。

//省略其他代码
private:char *m_name;//指针变量占4字节char m_char;//字符变量原本只占1个字节,但内存对齐,这里占4字节int m_age;//int类型变量占4字节float m_score;//float类型变量占4字节
//省略其他代码

http://www.mmbaike.com/news/88689.html

相关文章:

  • 兰州做网站的公司有哪些怎么在平台上做推广
  • 做电脑网站用什么软件有哪些seo综合查询什么意思
  • 建网站卖产品怎么样中国站长之家域名查询
  • 制定网站建设方案百度网站安全检测
  • 做网站需要注意重庆seo薪酬水平
  • 网页设计网站制作收获关键词seo培训
  • 广州网站设计哪里找浙江百度查关键词排名
  • 做个购物商城网站多长时间百度怎么推广自己的信息
  • 教育培训网站制作网拍外宣怎么推广
  • 上海最好网站建设公司seo推广价格
  • 官方网站建设滞后电商运营怎么做如何从零开始
  • 网站建设辶金手指排名十三企业培训考试系统
  • 网站开发后端论文免费引流推广
  • 廊坊做网站公司哪家好怎么在百度上做广告推广
  • dedecms视频网站模板商业推广费用一般多少
  • 做三级分销网站公司怎样做网络推广营销
  • ps做图下载网站有哪些网站的优化从哪里进行
  • web网站开发毕业论文结论提升seo排名平台
  • 电子商务网站建设主题深圳推广服务
  • 成品网站 高端武汉网络推广优化
  • 网站制作设计哪家公司好百度应用app
  • 清溪仿做网站阿拉营销网站
  • 长沙域名注册公司seo教程视频论坛
  • 如何访问国外网站网站搭建需要什么技术
  • 怎么做网站推广毫州广州婚恋网站排名
  • idc网站模板源码下载武汉百度网站优化公司
  • wordpress 百度网盘插件东莞关键词排名优化
  • 唐河网站制作java培训学费多少钱
  • 互联网定制产品网站效果好的东莞品牌网站建设
  • 电脑租赁东莞seo网站排名优化公司