用sizeof获得class里面 static数组的大小.....
来源:互联网 发布:r语言读取大数据csv 编辑:程序博客网 时间:2024/06/05 04:58
class AboutString { string str; public: explicit AboutString(const string& str1 = "haha") :str(str1) {}; void print() const{ cout << str << endl; } }; class SecondString { static AboutString astr[]; const static AboutString astr_const[]; public: static void show_data(); }; AboutString SecondString::astr[] = { AboutString("as1"),AboutString("as2"),AboutString("as3") }; const AboutString SecondString::astr_const[] = { AboutString("as1_const"),AboutString("as2_const"),AboutString("as3_cosnst") }; void SecondString::show_data() { for (int i = 0; i < sizeof(astr) / sizeof(*astr); i++) { astr[i].print(); } for (int i = 0; i < sizeof(astr_const) / sizeof(*astr_const); i++) { astr_const[i].print(); } }
这里有坑。
static AboutString astr[]; const static AboutString astr_const[];
这段代码只是变量的声明,并没有给变量赋初始值,自然也没有分配到静态存储区域。
static void show_data();
如果将show_data 写成内联,会悲剧。由于没有定义,编译器还不知道两个静态变量的大小。sizeof(astr)会取不到值。
将show_data 写成非内联的就可以解决这个问题~
阅读全文
0 0
- 用sizeof获得class里面 static数组的大小.....
- sizeof Class类的对象的大小
- struct,class的sizeof大小问题
- 类大小sizeof(class)
- 类大小sizeof(class)
- 用sizeof求二维数组的行列大小
- sizeof求struct、指针、数组的大小
- 数组与指针的sizeof大小
- C++面试题5:建议在函数里面不要用sizeof算数组的大小
- C++类的大小——sizeof(class)
- sizeof class 详解(类的大小问题实验剖析)
- C++类的大小——sizeof(class)
- C++类的大小——sizeof(class)
- C++类的大小——sizeof(class)
- C++中struct 和 class的sizeof大小
- C++类的大小——sizeof(class)
- 7_25 C语言 sizeof计算数组大小以及static讲解和静态库动态库
- 获得数组大小
- C++ 数据结构应用——链表
- CSS浮动
- 软键盘弹出显示或隐藏工具类
- 使用 Kotlin 读取本地视频并使用Vitamio框架编写万能播放器进行播放(二)
- Ubuntu 中文man手册安装方法
- 用sizeof获得class里面 static数组的大小.....
- C++实现RTMP协议发送H.264编码及AAC编码的音视频
- java内部类
- c++与c语言的区别:const
- LeetCode Weekly Contest 36解题思路
- spark接收kafka的数据运行spark程序节点的task数据倾斜
- Java 重载与覆写区别
- js获取本机mac地址,IP地址,计算机名
- Android快速开发之SuperTextView