c++ - 如何在内存中处理引用

标签 c++

class B {
};

class A {
    A(B& b):_b(b)  
    B& _b;
};

int main() {
    B b;
    A a(b);
    char* x = reinterpret_cast<char*>(&a);
}                               

我正在根据对象的字节值创建哈希函数。我想知道对象 a 的字节将保存 b 还是它们将保存一个引用(指针)?

最佳答案

当您将 A::_b 声明为引用时,它将“保存”一个引用。因此,如果按字节检查 a,对象 a 不包含 b 的数据。


顺便说一下,您忘记在转换中使用 address-of 运算符。

关于c++ - 如何在内存中处理引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38846490/

相关文章:

c++ - 在 if/else 语句中声明一个可以有不同类型的变量

c++ - 使用 Boost::random 的标准多元正态随机 vector

c++ - 编译时生成应在构造函数中创建的非 constexpr 对象的数组

c++ - Julia 设置 C++ 颜色

c++ - 如何让 OpenSSL 服务器使用阻塞 BIO 干净地关闭?

c++ - 获取应用程序正在运行的实例的句柄

c++ - 在 C++03 的 `std::future` 实现中,互斥锁有什么问题?

c++ - C语言中如何使用内存地址?它们是十六进制还是无符号整数?

C++逻辑问题

c++ - 在构造函数继承中使用默认构造函数