gpt4 book ai didi

c++ - 嵌套数据成员指针 - 不可能?

转载 作者:可可西里 更新时间:2023-11-01 16:31:53 25 4
gpt4 key购买 nike

下面的精简代码示例没有做任何有用的事情,只是对数据成员指针进行了两次后续赋值。第一个赋值有效,第二个给出编译器错误。大概是因为它是嵌套成员。

问题是:让成员指针指向嵌套成员真的是不可能的,还是我错过了任何奇特的语法?

struct Color {
float Red;
float Green;
float Blue; };


struct Material {
float Brightness;
Color DiffuseColor; };


int main() {
float Material::* ParamToAnimate;
ParamToAnimate = &Material::Brightness; // Ok
ParamToAnimate = &Material::DiffuseColor.Red; // Error! *whimper*
return 0; }

ATM 我正在​​通过使用字节偏移量和大量强制转换来解决问题。但这很丑陋,我更愿意使用那些成员指针。

是的,我知道这个问题之前肯定出现过(就像几乎所有问题一样)。是的,我事先进行了搜索,但没有找到令人满意的答案。

感谢您的宝贵时间。

最佳答案

据我所知,这是不可能的。指向成员的指针只能由 &qualified_id 类型的表达式构成,这不是您的情况。

Vite Falcon 的解决方案可能是最合适的。

关于c++ - 嵌套数据成员指针 - 不可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3439074/

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