【发布时间】:2014-05-18 16:18:17
【问题描述】:
我们能否创建一个结构,其中包含一些值和指向同一结构中值的引用?我的想法是制作别名。所以我可以用不同的方式调用结构成员!
struct Size4
{
float x, y;
float z, w;
float &minX, &maxX, &minY, &maxY;
Size4(float _x, float _y, float _z, float _w) : x(_x), y(_y), z(_z), w(_w),
minX(x), maxY(y), minY(z), maxY(w)
{
}
};
谢谢大家。
注意:我是用指针完成的,但现在当我尝试调用 Size4.minX() 时,我得到的是地址,而不是值。
struct Size4
{
float x, y;
float z, w;
float *minX, *maxX, *minY, *maxY;
Size4(float _x, float _y, float _z, float _w) : x(_x), y(_y), z(_z), w(_w),
minX(&x), maxX(&y), minY(&y), maxY(&w)
{
}
};
【问题讨论】:
-
是的,你可以。但是无法重新分配引用,因此我看不到太多用处。你想完成什么,你了解pointers to members吗?
-
感谢指向成员链接的指针,但使用此解决方案,我可以通过添加解析地址操作符 (*) 来访问值。
-
我想让它透明。尺寸4尺寸(5,5,5,5);尺寸.minX;和大小.x;返回相同的值...
-
嗯,重点是,您可以拥有这些参考资料。
-
请注意,必须为对象中的引用分配空间。所以对象的大小会因此而增长。
标签: c++ pointers struct reference