2013-04-13 73 views
0

我有幾個類在不同的文件。我想從main()函數的文件機制中使用簡單的C讀取 - 只需從兩個文件中讀取兩個整數即可。混合OOP與結構代碼

現在,我應該創建一個單獨的File類並從那裏處理它嗎?

我應該在單獨的"file.cpp"文件中創建標準功能嗎?

我應該直接在main()中寫下這3 - 5行代碼嗎?

回答

2

我認爲你的意思是你將OOP與程序編程混合在一起。如果是這樣,那很好。 C++旨在將這兩者結合在一起。

如果你想寫一個沒有任何狀態的函數,不要把它作爲一個類的成員。只需編寫一個名爲read_values_from_file或任何你想要的免費函數。在代碼中識別個人責任並將其分解爲功能絕對是一種很好的做法。

你應該放入哪個文件取決於你是否會重用它。如果您只在main開頭使用它,請將其放入main.cpp。爲了它,不要給它自己的文件。否則,如果要在多個翻譯單元之間使用相同的功能,將其聲明放置在頭文件中並將其定義放置在實現文件中可能會很有用。

無論你把它放在哪裏,都不要讓這個函數成爲一個類的成員。這正是Java程序員所做的,因爲他們別無選擇。 C++相信你知道什麼時候最適合創建一個類:當你有狀態時。

但是,我不認爲你有一個很好的理由使用任何C庫函數從文件中讀取。沒有理由不能編寫使用C++標準庫的過程代碼。只需使用文件流(如std::istream)來讀取值。

1

由於問題被標記爲C++,我建議您檢查c++ streams的主題。我不明白你爲什麼要寫文件閱讀相關的類。

+0

我想寫這個類只是爲了放置文件流處理。這是我的問題,我可以使用C++文件流,但是我應該在哪裏將它們放在OOP系統中,如果我只是在一開始就使用它們來快速從文件中讀取兩個變量? 「main.cpp」中的 – user2252786

+0

。除非你有一個原因,爲什麼你會想要根據你所在的系統做不同的處理,在這種情況下,它會進入「systemdependent.cpp」等等。 –

+0

在這種情況下,你應該把它們放在你需要的地方(例如'main()'),而不是爲了類而創建類。 –

0

這個任務非常小,如果採用「最佳實踐」很難說。

使它現在工作,使用scanfstd::cin或任何方便,如果你發現自己需要更多的功能,然後開始設計更強大的東西。

不要浪費一大堆時間,直到你知道你將需要這些額外的功能。

+0

是的,我知道YAGNI規則,但是這是作業和從文件中讀取變量是一個要求。 – user2252786