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

网站建设哪个公司好知乎微信公众号营销

网站建设哪个公司好知乎,微信公众号营销,阳泉住房建设局网站,新网站如何做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.dt0577.cn/news/5830.html

相关文章:

  • 微信公众好第三方网站怎么做互联网媒体广告公司
  • 电商型网站建设注册网站流程和费用
  • 网站主页 优帮云网站建设优化400报价
  • 上海高端网站设计公司站长之家域名查询鹿少女
  • 邮箱网址注册免费东莞市网络seo推广服务机构
  • 大气科技类企业公司网站源码千锋教育的口碑怎么样
  • 企业网站开发需求分析网络销售怎么做才能有业务
  • 做类型网站线上it培训机构
  • 网站 月15g流量够用吗淘宝搜索排名
  • 自己做网站名电子章违法吗河南制作网站公司
  • 叫別人做网站靠谱吗搜客通
  • 做一个响应网站多少钱深圳网络推广工资
  • 行业网站制作泉州seo报价
  • 广州网站建设公司网站怎么制作免费的
  • 建设监理工程公司网站站长之家域名信息查询
  • 外贸做网站建设哪家好百度网盘app官网下载
  • 衡水企业做网站推广推广宣传方式有哪些
  • 网站建设中是什么意思杭州seo百度关键词排名推广
  • 东莞企业名录网seo 网站优化推广排名教程
  • 淘宝客网站推广备案信息企业营销型网站建设
  • 网站建设怎么做呢上海搜索排名优化
  • 大厂做网站shijuewang在哪里查关键词排名
  • 毕业论文团购网站开发技术网站百度收录
  • 学做预算有网站吗外链链接平台
  • 怎么建公众号申请seo教程培训班
  • 凡科建的网站可以做seo吗电子商务软文写作
  • 杭州外贸网站建设公司排名seo如何优化图片
  • 深圳网站建设有限公司18种最有效推广的方式
  • 重庆建设工程网站产品推广策划方案
  • 自己做网站教程站长工具seo综合查询引流