@Mgetz कहते हैं, आप शायद #include <fstream>
भूल गए हैं।
कारण आप एक not declared
त्रुटि नहीं मिला और इसके बजाय इस incomplete type not allowed
त्रुटि क्या होता है वहाँ एक प्रकार है कि "forward declared" कर दिया गया है, लेकिन अभी तक पूरी तरह नहीं परिभाषित किया गया है जब से कोई लेना देना नहीं है। इस उदाहरण को
देखो:
#include <iostream>
struct Foo; // "forward declaration" for a struct type
void OutputFoo(Foo & foo); // another "forward declaration", for a function
void OutputFooPointer(Foo * fooPointer) {
// fooPointer->bar is unknown at this point...
// we can still pass it by reference (not by value)
OutputFoo(*fooPointer);
}
struct Foo { // actual definition of Foo
int bar;
Foo() : bar (10) {}
};
void OutputFoo(Foo & foo) {
// we can mention foo.bar here because it's after the actual definition
std::cout << foo.bar;
}
int main() {
Foo foo; // we can also instantiate after the definition (of course)
OutputFooPointer(&foo);
}
सूचना हम वास्तव में एक फू वस्तु का दृष्टांत नहीं कर सकता है या असली परिभाषा के बाद जब तक इसकी सामग्री देखें। जब हमारे पास केवल आगे की घोषणा उपलब्ध हो, तो हम केवल इसके बारे में सूचक या संदर्भ से बात कर सकते हैं।
क्या हो रहा है कि आप कुछ आईस्ट्रीम हेडर को शामिल करते हैं जिसने std::ofstream
को इसी तरह से घोषित किया था। लेकिन std::ofstream
की वास्तविक परिभाषा <fstream>
शीर्षलेख में है।
(ध्यान दें:।। भविष्य में अपने कोड से बाहर सिर्फ एक समारोह के बजाय एक Minimal, Complete, Verifiable Example प्रदान करना सुनिश्चित करें आप एक पूरा कार्यक्रम है कि समस्या को दर्शाता है की आपूर्ति करना चाहिए यह बेहतर होता उदाहरण के लिए,:
#include <iostream>
int main() {
std::ofstream outFile("Log.txt");
}
...
आप शामिल था भी, "उत्पादन" आम तौर पर नहीं दो "उत्पादन") के रूप में एक पूर्ण शब्द, के रूप में देखा जाता है ' '? –
Mgetz