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

营销型网站建设费用免费发布信息网

营销型网站建设费用,免费发布信息网,成都住建平台,个人网站可以做论坛吗当我们如下声明了一个类: class A{public:static int sti_data;// 这个语句在c11前不能通过编译,在c11的新标准下,已经能够在声明一个普通变量是就对其进行初始化。int a 10;static const int b 1;//...其他member };// 在类外…

当我们如下声明了一个类:

class A{public:static int sti_data;// 这个语句在c++11前不能通过编译,在c++11的新标准下,已经能够在声明一个普通变量是就对其进行初始化。int a = 10static const int b = 1;//...其他member
};// 在类外定义静态成员变量并分配内存
int A::sti_data = 10;

上述的类只是声明了而已,并不是在系统中实际存在,要使用一个类,必须在系统中分配内存,也就是实例化出一个对象,比如:

int main () {A a;
}

为了明白为什么类的非const静态变量一定要在类的外边定义:

  • 首先,需要搞清楚,文件中的类A的写法只是声明类A实现形式,在我们没有实例化一个类对象前,系统中不存在分配给类A的内存。同理,我们实例化了N个类A的对象,系统分配了N个A大小的内存。
  • 其次,静态数据成员是一个类共有的,而不是一个对象独有,整个程序中只有一份静态数据成员的内存。
  • 假如,我们不对静态成员变量进行与普通成员变量不同的处理,而是一样能在类的声明里事先定义并初始化好静态成员变量(也就是声明时给定一个初始值,等真正实例化一个对象时便用事先给定的初始值初始化这个变量):static int sti_data = 1;,这意味着,每个我们实例化的类对象,都存在一个分配给静态成员变量的内存,这将导致在内存中存在多个同名的静态变量,这与静态变量的唯一性矛盾,必然编译不通过。
  • 从实现来看,编译器确实能做到,每次实例化一个类对象时判断类中的静态变量是否已经定义过,但很显然,这么做的成本太高,还不如直接强制要求不能在类中对非const静态变量进行定义并初始化,而是只能声明。
  • 至于为什么const静态变量能够在类内直接定义,因为static const 成员变量会被编译器优化,为编译期常量,编译器不会为其分配内存,更像是宏定义那样,在编译期时,在使用它的地方,用它的值替换它,这一点可以通过代码看到,若我们在类中定义一个static const 成员变量,我们可以打印出它的值,却不能打印出它的地址,因为编译器并没有给它分配内存。
  • 因此,c++要求,非const静态变量一定要在类外定义。

为什么(普通或类的)函数里的静态变量能够事先初始化
这个问题主要时为了与第一个问题进行对比,加深理解。
原因很简单,每个的函数,无论是否静态,是否是成员函数还是普通函数,程序在编译时,会给每个函数分配内存,同时一个函数在程序里只有一份内存,这与类在实例化一个对象时才分配内存是有本质上的区别的。这时,对于函数的静态变量而言,只需要把静态变量的内存分配到静态区就能做到在程序的生命周期里不随着函数的调用而被构造或者销毁。

http://www.ds6.com.cn/news/103487.html

相关文章:

  • 长宁区网站制网站在线客服系统 免费
  • 做苗木的哪个网站效果好长沙专业竞价优化首选
  • 深圳专业优定软件网站建设哈尔滨seo
  • 安平县外贸网站建设网站seo博客
  • 有哪些可以做问卷赚钱的网站宁波seo推荐优化
  • 搜索网站logo怎么做宁波网站建设团队
  • 电商网站设计公司中视频自媒体平台注册官网
  • 专门为98k做的网站360优化大师app
  • 电商网站的模块seo深圳培训班
  • 郑州网站建设 个人工作室北京百度seo排名点击器
  • 网站建设的活动方案公司软文
  • 小网站发布要怎么做关键字是什么意思
  • 物流企业网站建设步骤关键词优化最好的方法
  • dede手机网站武汉百度推广代运营
  • 淘宝网发布网站建设软文广告经典案例300
  • 做网站怎么赚零花钱宁波网站推广排名
  • 深圳网站建设深圳网站长之家论坛
  • 凡科网站源码下载网络营销个人感悟小结
  • 虚拟商城网站网络营销的基本功能
  • css建设网站的步骤网站seo关键词优化技巧
  • 网站制作.com语言青岛网站建设公司排名
  • 国外有没有做物理小实验的网站上海搜索引擎关键词优化
  • 网站模板 metinfo网站优化+山东
  • 商贸有限公司的经营范围seo1搬到哪里去了
  • 淘宝客 插件 wordpress湖南靠谱的关键词优化哪家好
  • 公司网站建设方案书拓客团队怎么联系
  • 音乐网站开发的项目背景外链代发2分一条
  • 群晖服务器做网站推广优化关键词
  • wordpress膜版教程郑州seo优化公司
  • 市场营销管理唐山百度提升优化