有時候,我覺得方法重載可能會造成混淆。什麼時候應該使用方法重載vs不同命名方法
class a {
public:
void copy(float f);
void copy(double d);
};
a me;
me.copy(1.2); // Not obvious at the first sight on which version we are calling.
在此解決方法是。
class a {
public:
void copyFloat(float f);
void copyDouble(double d);
};
然而,具有不同的名稱的方法,來執行相同的功能似乎不是一個好主意爲好。我是否知道,您認爲如何選擇方法重載或方法命名不同?
那麼所有''中的數學函數都不應該被重載,而是會有不同的名字?真是一場噩夢! –
GManNickG
2010-08-12 03:45:16
很明顯,這不會很好,我認爲你發佈的例子更符合人們擔心的方面。如果重載確實使得用戶不必擔心它是什麼類型,因爲正確的事情將以任何方式完成,那麼這很好,但是如果根據它是什麼類型發生不同的行爲這就是事情會變得微妙的地方。正如你指出的那樣,這實在是濫用重載。 – bshields 2010-08-12 03:48:26