我创建了一个类 SettingsClass,其中包含静态字符串,这些字符串包含 MySQL C++ 连接器库要使用的数据库连接字符串(例如主机名、数据库名、用户名、密码)。
每当一个函数需要连接到数据库时,它都会在这些静态字符串上调用 .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(),...);
静态字符串在进程生命周期中填充一次。它的值是从配置文件中读取的。
我的应用程序是多线程的。我是否以安全的方式使用 c_str() ?