এটি আমার নমুনা কোড:
#include <iostream>
#include <string>
using namespace std;
class MyClass
{
string figName;
public:
MyClass(const string& s)
{
figName = s;
}
const string& getName() const
{
return figName;
}
};
ostream& operator<<(ostream& ausgabe, const MyClass& f)
{
ausgabe << f.getName();
return ausgabe;
}
int main()
{
MyClass f1("Hello");
cout << f1;
return 0;
}
যদি আমি মন্তব্য করি তবে আমার #include <string>
কোনও সংকলক ত্রুটি না পেয়ে আমি অনুমান করি কারণ এটি এক ধরণের মাধ্যমে অন্তর্ভুক্ত রয়েছে #include <iostream>
। যদি আমি মাইক্রোসফ্ট ভিএসে "ডান ক্লিক করুন -> সংজ্ঞাতে যান" তারা উভয়েই xstring
ফাইলে একই লাইনে নির্দেশ করে :
typedef basic_string<char, char_traits<char>, allocator<char> >
string;
তবে আমি যখন আমার প্রোগ্রামটি চালাচ্ছি, তখন আমি একটি ব্যতিক্রম ত্রুটি পেয়েছি:
অপারেটর স্ট্রিং.এক্সে 0x77846B6E (ntdll.dll): 0xC00000FD: স্ট্যাক ওভারফ্লো (প্যারামিটার: 0x00000001, 0x01202FC4)
মন্তব্য করার সময় কেন আমি রানটাইম ত্রুটি পেতে পারি তার কোনও ধারণা #include <string>
? আমি ভিএস 2013 এক্সপ্রেস ব্যবহার করছি।
#include<iostream>
এবং এটি <string>
উভয়ই অন্তর্ভুক্ত থাকতে পারে <common/stringimpl.h>
।
...\main.cpp(23) : warning C4717: 'operator<<': recursive on all control paths, function will cause runtime stack overflow
এই লাইনটি চালানোর সাথে সতর্কতা cl /EHsc main.cpp /Fetest.exe