假設我有這樣的結構c++
:指針的使用是否會導致內存堵塞?
class A{
public:
B b;
}
class B{
public:
C c;
}
class C{
public:
double x;
double y;
double z;
double s;
function Usize(){
s = sqrt(pow(x,2) + pow(y,2) + pow(z,2));
}
}
將訪問在c
十倍的值需要比創建一個直接指針到c,並用它更多的內存流量?在代碼方面(假定合法值):
double dx = 2*rand()-1;
double dy = 2*rand()-1;
double dz = 2*rand()-1;
a->b->c.x *= dx;
a->b->c.y *= dy;
a->b->c.z *= dz;
if (a->b->c.x > 10) a->b->c.x -= 10;
else if (a->b->c.x <0) a->b->c.x += 10;
if (a->b->c.y > 10) a->b->c.y -= 10;
else if (a->b->c.y < 0) a->b->c.y += 10;
if (a->b->c.z > 10) a->b->c.z -= 10;
else if (a->b->c.z < 0) a->b->c.z += 10;
a->b->c->Usize();
與
double dx = 2*rand()-1;
double dy = 2*rand()-1;
double dz = 2*rand()-1;
C* ac = a->b->c
ac.x *= dx;
ac.y *= dy;
ac.z *= dz;
if (ac.x > 10) ac.x -= 10;
else if (ac.x < 0) ac.x += 10;
if (ac.y > 10) ac.y -= 10;
else if (Ac.y < 0) ac.y += 10;
if (ac.z > 10) ac.z -= 10;
else if (ac.z < 0) ac.z += 10;
感謝。
你的代碼是錯誤的,這使得很難知道你在問什麼。類成員聲明應該是'B * b'還是'C * c',或者訪問是否應該是'a.b.c.x'等等? – TonyK