类中定义一个static数据成员,为什么还要在类外定义?
来源:互联网 发布:ubuntu16 cuda8 caffe 编辑:程序博客网 时间:2024/05/01 21:04
类中定义一个static数据成员,为什么还要在类外声明?
C++中规定,static数据成员必须在类外部进行初始化,并不是在类外声明。
而且类中的static数据成员占有空间为什么不算在类中?其占用的空间在哪里?
因为static成员与class中的数据成员不在同一个内存段,static存贮在静态存贮区,而class-member(非static成员)则不一定(静态/栈/堆),三种情况都有可能,就看你怎么申请class空间了。
为什么在这个程序中定义一个成员函数但是不能用sizeof(Names::pool)查看其大小?
老大哦,这可是private成员哦,你怎么可以在main里面用sizeof()的?
class A{
....
static char pool[];
//这里是声明,但并没有真正的定义及初始化,只有在类外进行char Names::pool[maxnames*sizeof(Names)];才会真正在静态存贮区分配空间。
....
}
- 类中定义一个static数据成员,为什么还要在类外定义?
- 类中定义一个static数据成员,为什么还要在类外声明?
- static 数据成员必须在类定义的外部定义
- 【c++】为什么类中静态(static)成员不能在类的定义内初始化?
- static成员变量在类的定义体中初始化
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- C++ 类的成员函数定义在.h中为什么会产生函数重定义错误?
- C++在类中定义静态数据成员
- 定义一个类成员
- 为什么static数据成员一定要在类外初始化?
- 为什么static数据成员必须在类外初始化
- 为什么static数据成员一定要在类外初始化?
- 为什么static数据成员一定要在类外初始化?
- C++ 类中const成员 static 成员 const static 成员定义及初始化
- VC6.0中,整型const static成员不能在类的定义体中初始化.
- 类中const 数据成员的定义
- javascript技巧(判断全角,查看字符的asc码,判断是否是数字)
- LDAP的objectClass
- DataGridView 备忘
- →『你掌握了这些C的基础知识吗?』
- 半角全角的转换javascript
- 类中定义一个static数据成员,为什么还要在类外定义?
- →『一些面试题』
- 临时
- C++中类中static方法的使用
- mysql数据库的基本操作
- OpenLDAP在 JAVA中添加,删除
- HTML的一些基本知识和技巧
- const可以出现在函数头,参数列表,以及参数尾
- 初步研究Jprofiler