0

<<and>>演算子を使用して、外部データベースにロードおよび保存したいと考えています。それが機能するために、外部データベースは何を実装する必要がありますか?

考えや経験?SQL を使用して sqlite3 データベースとやり取りしています。

たとえば、次のように言いたいです。

MyClass c;
c >> databaseInstance;
c << databaseInstance;
4

2 に答える 2

3

databaseInstance必要な方法でデータベースに書き込む機能を提供し、ストリームのようなインターフェイスを提供する何らかのタイプである必要がありoperator>>ますoperator<<。これらの関数は、次のように定義されます。

database_type& operator<<(database_type& databaseInstance, MyClass& c)
{
  // Write to database here
  return databaseInstance;
}

database_type& operator>>(database_type& databaseInstance, MyClass& c)
{
  // Read from database here
  return databaseInstance;
}

これは、演算子のオーバーロードを利用します。それ以上言うことはありません。データベースはストリームとあまり似ていないため、データベースを扱うのはかなり奇妙なことです。

C++ 標準ライブラリとの一貫性を保つために、演算子の使用法を逆にしたい場合があります。

MyClass c;
databaseInstance << c;
databaseInstance >> c;

MyClassただし、最終行がオブジェクトに何を読み込むかは正確にはわかりません。databaseInstance2 行目は、特定のテーブルに挿入するように構成されている場合にのみ意味があります。

于 2012-11-26T17:38:51.783 に答える