MySQL C++ コネクタ ライブラリで使用されるデータベース接続文字列 (ホスト名、データベース名、ユーザー名、パスワードなど) を保持する静的文字列を含むクラス SettingsClass を作成しました。
関数がデータベースに接続する必要があるときはいつでも、これらの静的文字列に対して .c_str() 関数を呼び出します。例えば:
Class SettingsClass
{
public:
static string hostname;
...
}SettingsClass;
string SettingsClass::hostname;
//A function that needs to connect to the DB uses:
driver = get_griver_instance();
driver->connect(SettingsClass.hostname.c_str(),...);
静的文字列は、プロセスの存続期間中に 1 回入力されます。その値は構成ファイルから読み取られます。
私のアプリケーションはマルチスレッドです。安全な方法で c_str() を使用していますか?