我有這個類:C++映射一個變量地址?
class Texture
{
public:
//I need this variable in this format
float diffuseColor[3];
}
但我想打一個更簡單的界面比處理「diffuseColor [0]」和這樣的,是這樣的:
myTexture.color.r = 1.0f; //this is diffuseColor[0]
所以我試圖讓作爲外殼的工作方式與diffuseColor值的一類,像這樣:
class Color
{
public:
float *r, *g, *b;
}
而且在我的Texture類:
class Texture
{
public:
Texture()
{
color.r = &diffuseColor[0];
color.g = &diffuseColor[1];
color.b = &diffuseColor[2];
}
Color color;
private:
float diffuseColor[3];
}
但它現在是這樣的,我必須去參考的顏色值,如果我想使用它們:
(*myTexture.color.r) = 1.0f;
我怎樣才能做到這一點,而不必去引用它,每次我想用它嗎?
使用引用而不是指針。並將引用的初始化移動到'Color'構造函數中,而不是'Texture'中。或者,也許你可以使用訪問函數(例如,'r()/ r(float)'作爲getter/setters)並去掉'Color'子類。 – syam
@syam:引用而不是指針將不允許複製。 –
@MooingDuck啊對了,沒有想到,我的壞(我幾乎總是使用訪問器這種東西,他們更清潔恕我直言)。 – syam