gpt4 book ai didi

C++:转换/转换 void 指针到结构引用

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:17 29 4
gpt4 key购买 nike

我想将 void 指针转换为结构引用。

结构的最小示例:

#include "Interface.h"

class Foo
{
public:
Foo()
: mAddress((uint32_t*)0x0803D000)
// Okay
, mStructPtr(*static_cast<const Struct*>(mAddress))
// Error: invalid static_cast from type 'const void*' to type 'const Struct&
, mStructRef1(static_cast<const Struct&>(mAddress))
// Error: 'const void*' is not a pointer-to-object type
, mStructRef2(static_cast<const Struct&>(*mAddress))
{

}

private:
const void * const mAddress;
Struct* mStructPtr;
Struct& mStructRef1;
Struct& mStructRef2;
};

使用引用有意义/可能吗(如何在构造函数中初始化?)还是必须使用指针?

最佳答案

我要在这里伸出我的脖子说这是你想要做的事情的基础:

class Struct { int x;};

class Foo
{
Foo() :
s(*static_cast<Struct *>(reinterpret_cast<void*>(0x0803D000)))
{}
Struct & s;
};

(而且这不能跨平台移植 - 查看所有评论)。

关于C++:转换/转换 void 指针到结构引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46952779/

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