更新指針的值還是更改指針指向其他內容會更好嗎?
假設我們有兩個類:球和座標。
class ball
{
Coordinates *ballCurrent;
public:
ball(int);
~ball();
void setLoc(Coordinates&); // OR void setLoc(int, int);
};
class Coordinates
{
int x, y;
public:
Coordinates(int, int);
void setCoordinates(int, int);
};
對於ball類中的setLoc方法,哪個參數應該更好?使用(* ballCurrent).setCoordinates(int,int)或者通過使用(ballCurrent).setLoc((new Coordinates(int,int))),setLoc會更好嗎?請儘可能詳細說明每種情況的原因。兩種方式由函數重載
class ball
{
Coordinates coordinate_; // better name than ballCurrent?
public:
explicit ball(int) // add explicit to avoid implicit converting
: coordinate_(0,0) // initialize corrdinate_ properly
{
}
~ball();
void setLoc(const Coordinates& co) // add const
{
coordinate_ = co;
}
void setLoc(int x, int y)
{
coordinate_.setCoordinates(x,y);
}
};
無需擔心動態內存的問題,可能setLoc
:
爲什麼在存在現有對象時創建另一個對象? – 2013-02-15 05:03:54
我有點想知道什麼時候使用每種情況更好。 – dalawh 2013-02-15 05:04:16
和座標需要是一個指針嗎? – billz 2013-02-15 05:05:20