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

本文共 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

你可能感兴趣的文章
Mac安装pycrypto
查看>>
ccf算法模板
查看>>
SGA_TARGET与SGA_MAX_SIZE
查看>>
云计算硬件交换设备参数配置考虑
查看>>
安装django错误
查看>>
Java输入两个正整数m和n,求其最大公约数和最小公倍数。
查看>>
在Solaris 10编译并安装vim7.3
查看>>
Java中抽象类、接口、父类直接的区别与联系
查看>>
Google Chrome OS 将来能取代 Windows 帝国吗?
查看>>
设计原则二:空间和图底关系
查看>>
IPV6IPV4双栈协议DNS解析抓包分析
查看>>
“WCF并发与限流体”系列[共7篇]
查看>>
LVS集群之十种调度算法及负载均衡--理论
查看>>
shell 脚本监控Linux 性能
查看>>
RedHat搭建Samba服务器
查看>>
查询SQL Server system session ID?
查看>>
IDEA或Webstorm设置Ctrl+滚轮调整字体大小
查看>>
String[]转String
查看>>
【远程用户建立】
查看>>
各种编程语言下字符串分割及foreach遍历对比
查看>>