我有一個類顯示2個實用功能getDate和getTime如下。實用程序功能如何在各個類中共享?
class Display
{
public:
void getDate(char *pDate); //Utility functions for converting to custom format
void getTime(char *pTime);
};
後來,在另一個叫做Retriever的類中,我也需要相同的Utility函數getDate和getTime。我不想讓getDate
和getTime
函數爲全局函數(或類似C函數),以避免意外地使用這些函數(這些函數特定於這兩個類)。即使將它們包裝在名稱空間中也不會防止意外使用。
顯示和檢索器是不相似的類。不能在它們之間使用繼承。不能使用組合和聚合,因爲這些類的對象的生命週期將不同。它們不在一起(同時)。
有沒有什麼好的方法可以將Display Utility中的Utility函數移出來並在Display和Retriever中使用它們? 將getDate和getTime放置在名爲Utilities的獨立類中並在類Display和Retriever中使用它的對象是否好?
你爲什麼如此擔心意外使用? – 2010-10-21 07:19:41
@PigBen:因爲這些函數寫入傳遞的字符指針。緩衝區溢出不被照顧。不正確的輸入可能會導致崩潰。 – bjskishore123 2010-10-21 07:31:30
例如, 'getDate'完全依賴於它被調用的'Display'或'Retriever'實例中的數據?如果是這樣,什麼?顯示實施可能會有所幫助。 – 2010-10-21 07:37:41