sqlite3接続用に次のクラスを作成しました。
class SqliteConnection
{
public:
sqlite3* native;
SqliteConnection (std::string path){
sqlite3_open_v2 (path.c_str(), &native, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
}
~SqliteConnection (){
sqlite3_close(native);
}
}
次に、次のように接続を初期化できます
SqliteConnection conn("./database.db");
ただし、この接続を共有したり、クラスのメンバーとして保存したりしたいので、デフォルトの代入演算子に問題がありますoperator=
。のようなことをする
SqliteConnection conn("./database.db");
SqliteConnection conn1 = conn;
各変数がスコープ外になると、データベースポインタで2つのsqlite3_close呼び出しが発生します。リソースを別の変数に割り当てる必要がある場合、RAIIでこの問題をどのように克服しますか?