我有一個好的編程風格的問題。我有一組處理程序流的方法。這些函數使用另一個類的對象。製作一個類似Functions
的課程並列出我在那裏的這些功能是否可行?這個類不會創建單個實例。我是不是應該將這些功能全部包含在課堂中?基本上他們做的東西就像打開主菜單一樣。有沒有創建它的實例有一個類可以嗎?
不知道這是不是一個愚蠢的問題,我在這個論壇上找不到任何類似的話題。我不是問如何做到這一點,而是如何處理它的風格。
非常感謝。
我有一個好的編程風格的問題。我有一組處理程序流的方法。這些函數使用另一個類的對象。製作一個類似Functions
的課程並列出我在那裏的這些功能是否可行?這個類不會創建單個實例。我是不是應該將這些功能全部包含在課堂中?基本上他們做的東西就像打開主菜單一樣。有沒有創建它的實例有一個類可以嗎?
不知道這是不是一個愚蠢的問題,我在這個論壇上找不到任何類似的話題。我不是問如何做到這一點,而是如何處理它的風格。
非常感謝。
在閱讀您的問題時,我立即想到了Java中的Math類(不確定什麼是C++等價物)。你可能知道它,它基本上是一個數學運算的集合。 Math class
在我看來,階級的你在你的問題說的是那種必須有一個客觀的,類似於數學類「一般功能集合」。像打開菜單這樣的東西應該是該菜單或菜單的父項的一種方法。另一方面,像使用程序中的特定對象計算某些值或遵循自定義模式的格式化元素,應該收集到「靜態」類中,以便使該類成爲程序中的有用工具。
數學運算非常一般函數可以應用於任何程序。嘗試在程序的上下文中轉置這個概念! ;)
'Math'只是Java中的一個類,因爲Java會迫使您將所有內容放在類中。 C++提供了命名空間,用於對邏輯上不屬於類的相關事物進行分組。 –
是的。我不太熟悉C++中的命名空間,但我想堅持使用對象的對象(方法)和一般操作之間的區別,而不是這些概念的具體應用。 –
現在把它們放在一個類中作爲靜態函數。你後來可能會意識到你會有一些共同點......也許說明了嗎?把它存儲在課堂上可能是有道理的。在你調用其他對象之前,你可能想要檢查那些東西......在你知道它之前,你將刪除你的靜態方面並實例化你自己的對象。也許以後考慮多個線程和這些對象中的幾個。你明白了......留給自己一個面向對象方法的空間......
也許你想使用C++命名空間呢? – ruben2020
爲什麼不把函數放入_namespace_? – Vlad
這似乎是一個偉大的想法 - 我是新來的C++,所以不知道這是可能的:) – wizH