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

电商网站制作成手机app养育成本

电商网站制作成手机app,养育成本,网站建设和seo是什么关系,做网站按什么收费多少每一天一个小trick!! 为什么静态成员不能在类内初始化? 在C中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。 class A { private: static int count …

每一天一个小trick!!

为什么静态成员不能在类内初始化?

在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。

class A 
{ 
private: 
static int count ; // 类内声明 
};// 类外定义并初始化,不必再加static关键字
int A::count = 0 ; 

或者只进行定义不赋初始值,但是默认值是否是0,可能会与具体的编译器有关吧?

// 只进行定义不赋初始值,但默认值视编译器而定
int A::count;

为什么?

因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。

如果不增加int A::count = 0 ; //变量定义,在编译的时候将会报出:‘A::count’未定义的引用”错误。这是因为静态成员变量count未定义,也就是还没有分配内存,显然是不可以访问的。

《c++primer》里面说在类外定义和初始化是保证static成员变量只被定义一次的好方法。 但为什么static const int就可以在类里面初始化呢?
想起C中一个函数里定义一个static变量是为了保证只初始化一次。

那么,是否可以这样理解: static数据成员在类外定义和初始化是为了保证只被定义和初始化一次,这样编译器就不必考虑类的函数里面第一个对static变量的’=’操作是赋值还是初始化了。 static const int可以在类里面初始化,是因为它既然是const的,那程序就不会再去试图初始化了。

什么静态成员能在类内初始化

能在类中初始化的静态成员只有一种,那就是静态常量成员。

//这样不行 
class A { 
private: static int count = 0; // 静态成员不能在类内初始化 
};//这样也不行 
class A { 
private: const int count = 0; // 常量成员也不能在类内初始化 
};//但是这样可以 
class A { 
private: static const int count = 0; // 静态整型常量成员可以在类内初始化,但是 static const float count就不行了 
};

总结:

静态成员变量,类内定义,类外初始化。

今天突然记起来大学学习c++时候这句顺口溜。有复习一个知识点。 

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

相关文章:

  • 站长之家怎么用单机游戏网页版
  • 网站的建设与运维凤岗网站仿做
  • 沙田做网站申请注册公司费用
  • 电商自建站dw做网站怎么发布
  • 淄博手机网站建设费用做网站没有固定电话
  • 推广展示类网站有哪些一般做美食网站的产品需求
  • 网站地图在哪里展现免费做app的软件有哪些
  • 空间备案和网站备案自己免费做网站
  • 网站如何添加关键词网站建设优劣的评价标准
  • 天津自己制作网站win2008 iis配置网站
  • 烟台建设用地规划查询网站广州营销推广
  • 昆明企业网站设计公司亿缘网站建设
  • 宁波网站建设yiso关键词搜索广告
  • 网站建设开发软件有哪些德清网站设计
  • 做网站首页图的规格wordpress文章怎么生成标签
  • 杭州网站建设慕枫百度推广的费用
  • 北京怀柔网站建设公司图片设计公司
  • 做网站的app网站开发架构图
  • 论坛网站开发费用泰安招聘网站有哪些
  • 文章网站哪里建设好wordpress 修改功能
  • 响应式 网站建设98同城招聘网信息附近
  • 济南网站建设 联系小七吉林网站建设公司
  • 如何提交网站连接到百度广西网红排名
  • 建设一个房产网站赚钱吗芜湖建设机械网站
  • 网站底部特效专业网站开发哪家专业
  • 网站名称和备案不一样景宁建设局网站官网
  • 网站建设哪家好知道网赌网站国外空间
  • 广东购物网站建设价格西安的推广公司
  • 手机网站设计要素服务好质量好的app开发
  • 武隆网站建设费用宣传海报怎么制作