error: ‘ofstream’ was not declared in this scope
但是當具體使用std: :使用流它工作正常。我的問題是爲什麼使用std :: fstream是不夠的,因爲ofstream/ifstream是這個庫的類嗎?
尊敬的敬業的downvoters,請在downvoting之前提供一個理由,以便我可以改進。謝謝!
error: ‘ofstream’ was not declared in this scope
但是當具體使用std: :使用流它工作正常。我的問題是爲什麼使用std :: fstream是不夠的,因爲ofstream/ifstream是這個庫的類嗎?
尊敬的敬業的downvoters,請在downvoting之前提供一個理由,以便我可以改進。謝謝!
您在混合使用#include
和using
。 #include
包括(令人驚訝的是不是嗎?)源文件中的聲明使它們可用。 #include <fstream>
實際上聲明瞭std::fstream
和std::ofstream
。
using
另一方面從當前名稱空間中的其他名稱空間導入聲明,以允許使用不合格的名稱。這裏std::ofstream
是限定名(包括命名空間)和不合格之一是... ofstream
所以,如果你想使用不合格的名稱ofstream
,加using std::ofstream;
到您的代碼。
但請注意,命名空間已添加到C++中,以允許正確分隔聲明並避免名稱衝突。特別是在主命名空間(該不贊成using namespace std;
)using
指令的過度使用導致命名空間污染,並會導致在瞬間發生衝突......
或者,你可以省略using
指令,並堅持使用std::ofstream
整個代碼。
我在想什麼時,我'使用'使用fstream,我認爲所需的forstream所需的材料也被導入,因爲所有都來自fstream標題下,並且使用fstream必須將ofstream作爲子集。這是錯的嗎? – Gaurav
'fstream'和'ofstream'不是一回事。 – user975989
@ user975989你能否詳細說明一下。 – Gaurav
當你使用'using'指令時,你需要精確地命名一個類型。這兩種類型不是一樣的。 – user975989