同一对象的"sizeof"的不同答案
Different answers for `sizeof` for same object
为什么sizeof
在此代码中为同一对象返回两个不同的答案?
class Test {
public:
int operator!() const {
return sizeof(this);
}
};
int main() {
Test obj;
std::cout << sizeof(obj) << " | " << !obj;
}
上面代码的输出是1 | 8
this
是指向类Test
的当前对象的指针。因此,operator !
返回指针的大小,而sizeof( obj )
是空类Test
或类中可能不等于C++零的对象的大小。
更改运算符,如以下程序所示,您将获得预期的结果
#include <iostream>
class Test {
public:
size_t operator!() const {
return sizeof( *this );
// ^^^^^
}
};
int main()
{
Test obj;
std::cout << sizeof(obj) << " | " << !obj;
}
程序输出为
1 | 1
相关文章:
- 欧拉项目#8答案是大以获得有效答案
- 首要问题的答案让值班员搞错了
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 使用 bfs 解决连接组件问题时得到错误的答案
- 同一对象的"sizeof"的不同答案
- 递归求和任务的错误答案
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为什么C++程序在太大时返回代码而不是答案?
- 不理解为什么代码没有产生所需的答案
- 为什么我在代码厨师的 CMPRSS 问题中得到 WA(错误答案)?
- 我的程序将 26 个字母转换为 ascII 没有显示正确答案
- 请找出我的代码中的错误,它在提交得到错误答案的同时仍然适用于我的所有测试用例
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- C++ 中 pow() 函数的输出没有给出准确的答案
- 函数从指针 c++ 中获取错误的值并返回错误的答案
- 给出不精确答案的递归Karatsuba算法
- 我的 cout 上有一个奇怪的输出,它把答案放在第一位,然后在我调用它的地方放一个奇怪的输出.我该怎么办?
- 对类的未定义引用,常见答案尚未解决
- C ++分割错误,为什么使用"long long"我没有得到答案?