以下のコードでそれを実現できるが,コンパイラによっては以下のコードはコンパイル出来ない.例えばg++はOKだがvc++10ではコンパイルに失敗する.
#include <iostream> #include <string> using namespace std; class MyClass { private: string name; public: MyClass(const string s): name(s){} friend ostream& operator << (ostream& os, const MyClass& obj); }; inline ostream& operator <<(ostream& os, const MyClass& obj) { os << obj.name; return os; } int main() { MyClass m("otter"); cout << "Dump myclass -- " << m << endl; return 0; }
0 件のコメント:
コメントを投稿