博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
static成员必须在类外初始化
阅读量:6906 次
发布时间:2019-06-27

本文共 559 字,大约阅读时间需要 1 分钟。

转自:

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

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

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

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

 

二:什么在类内初始化

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

class A{  private:    static const int count = 0; //ok: 静态常量成员可以在类内初始化};

以下是两种错误的初始化:

class A{  private:    static int count = 0; // err:静态成员不能在类内初始化};

const常量在初始化列表中初始化

class A{  private:    const int count = 0; //err: 常量成员也不能在类内初始化};

s

 

 

转载于:https://www.cnblogs.com/zjhnl/archive/2012/09/24/2699750.html

你可能感兴趣的文章
【转】协方差的意义
查看>>
C#语言学习--基础部分(十八)数组参数
查看>>
MySql简单分页存储过程
查看>>
EF6 在原有数据库中使用 CodeFirst 总复习(五、生成发帖页面)
查看>>
UVA 277 Puzzle
查看>>
rancher中级(一)(rancher的存储,网络)
查看>>
个人总结
查看>>
【第40题】2019年OCP认证12C题库062考试最新考试原题
查看>>
怎样在linux下查找一个结构体的原始定义
查看>>
OpenApi开源项目以及总结
查看>>
UNIX-LINUX C语言编程->实验室->多次打开文件实验
查看>>
8.8
查看>>
http://www.cnblogs.com/kenshincui/p/3840294.html
查看>>
更改SQL SERVER默认端口
查看>>
ajax的traditional属性
查看>>
网络安全重点总结
查看>>
git &github 快速入门
查看>>
windows下mysql忘记root密码的解决方法
查看>>
hdu 1907 John / 2509 Be the Winner 博弈 最后取完者为输
查看>>
原来生活如此精彩
查看>>