次のコーディング例では string クラスを定義しています。
| #include <stdlib.h>
#include <iostream.h>
class string {
private:
    char* data;
    size_t size;
public:
    // (functions not relevant here)
    friend ostream& operator<<(ostream&, const string&);
    friend istream& operator>>(istream&, string&);
}; | 
この例では、string クラスのデータ部が private であるため、挿入演算子と抽出演算子をフレンド定義しておく必要があります。
| ostream& operator<< (ostream& ostr, const string& output)
{    return ostr << output.data;} | 
前述の定義は、string クラスに対して多重定義された演算子関数 operator<< の定義です。
| cout << string1 << string2; | 
operator<< は、最初の引数として ostream& (ostream への参照) を受け取り、同じ ostream を返します。このため、次のように 1 つの文で挿入演算子を続けて使用できます。