c++ - 如何通过引用获取对象的大小?

标签 c++ reference sizeof

假设我有一个类

class Foo {

:
:

}

我还有一个功能

void getf( Foo &f) {

:
:

std::cout<<sizeof f<<std::endl;
}

我处理完数据,给f(foo成员中包含的vector)赋值了很多数据后,需要f对象的大小

但是,正如我上面所做的那样,我总是得到 16,这是这里引用的大小。

我做错了什么吗?如何做到这一点?

谢谢!

最佳答案

sizeof 返回类型的大小。通常,在 Vector 的情况下,类型的大小不一定包括该类型可能指向的所有内容的累积大小。例如,类型:

class Foo {
   char* chars
}

...无论 chars 指向单个字节还是指向 40Kb 字符串,都会显示相同 sizeof 结果。

关于c++ - 如何通过引用获取对象的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3477788/

相关文章:

c++ - 使用 DeviceIoControl 函数读取 MBR 时出现问题

c++ - 如何重用字符串流

c# - C#中,多个容器中的同一个字符串是否指向同一个位置

reference - 各种操作的大致 CPU 周期数

c++ - 具有 4 个 6 位成员的结构的 sizeof

c - 使用size_t获取数组的大小。另外,我如何使用malloc动态分配内存到数组?

c++ - 在 C++ 中以有效方式比较字符串的方法

c++ - 如何知道 Qt 项目是否正在使用调用约定?

c# - 在 C#.NET 项目中使用 (ffmpeg) 可执行文件

c++ - 为什么在 64 位机器上的 C++ 中 int 的大小不是 8 个字节。还有 gcc 的任何版本都支持 8 字节 int 吗?