gpt4 book ai didi

c++ - C++中同一个变量的多个名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:20 25 4
gpt4 key购买 nike

在 C++ 中是否可以在不使用预处理器的情况下使用不同的名称来引用同一个变量?

实现和这个伪代码一样的效果

struct vec3f {
float[3] values;
};

struct color : public vec3f {
#define r values[0]
#define g values[1]
#define b values[2]
};

color c;
c.r = 0.5f;

以下具有正确的语义,除了它在结构中为 3 个引用分配空间:

struct color : public vec3f {
float& r;
float& g;
float& b;
color() : r(values[0]), g(values[1]), b(values[2]) { }
};

有没有办法在不增加结构大小的情况下获得这个编译时名称替换?

最佳答案

这个怎么样?

struct vec3f {
float[3] values;
};

struct color : public vec3f
{
float& r() { return values[0]; }
float& g() { return values[1]; }
float& b() { return values[2]; }
const float& r() const { return values[0]; }
const float& g() const { return values[1]; }
const float& b() const { return values[2]; }
};

关于c++ - C++中同一个变量的多个名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8674552/

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