在类中声明一个指针变量,并创建一个内部函数改变该指针变量的值。
(1).h文件
void readSettings();
QSettings *DialSettings;
(2).cpp文件
void MainWindow::readSettings()
{
QSettings BasicSettings( QLatin1String("BasicSettings/BasicSettings.ini"), QSettings::IniFormat);
if(!BasicSettings.contains("dialFile"))
{
BasicSettings.setValue("dialFile",":/img/svg/altimeter.svg");
}
DialSettings=&BasicSettings;
}
(3)出现的问题,调用readSettings函数后,DialSettings仍然是空指针。
(4)分析:在readSettings函数中将DialSetting指针指向本函数中的一个局部变量BasicSettings的地址。函数结束后局部变量BasicSettings被注销,DialSetting指针指向的地址变为空。