gpt4 book ai didi

c++在没有运算符的情况下获取变量的地址&

转载 作者:IT老高 更新时间:2023-10-28 13:02:04 31 4
gpt4 key购买 nike

我有一个重载一元 operator& 的类。该类型的对象是使用 new 创建的,因此可以访问变量的地址,但现在我需要使用静态对象。是否有可能得到它的地址?

最佳答案

在 C++11 或更高版本中,std::addressof(object) ,由 <memory> 声明标题。

从历史上看,它更怪诞,特别是如果你想处理 constvolatile限定词正确。 Boost 实现 addressof 使用的一种可能性是

reinterpret_cast<T*>(
&const_cast<char&>(
reinterpret_cast<const volatile char &>(object)))

在转换为 char& 时首先添加限定符这样reinterpret_cast但是会起作用object合格;然后删除它们,以便最终转换起作用;然后最后获取地址并将其转换为正确的类型。只要Tobject 具有相同的限定符(它将作为从 object 推导出的模板参数),结果指针将被正确限定。

关于c++在没有运算符的情况下获取变量的地址&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26654740/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com