2012-08-22 20 views
2

我有使用如何使用QScopedPointer <QApplication的>

QApplication app(argc,argv); 
QStandardItemModel* model = new QStandardItemModel(r,c,&app); 

但在我的節目,我有

QScopedPointer<QApplication> app(createApplication(argc, argv)); 
QStandardItemModel* model = new QStandardItemModel(r,c,&app); //ERROR: no matching function 

如何使用本QScopedPointer沒有錯誤的例子嗎?

回答

2
QScopedPointer<QApplication> app(createApplication(argc, argv)); 
QStandardItemModel* model = new QStandardItemModel(r,c,app.data()); 
2

使用app.data()。雖然這是極不尋常創建QApplication在堆上...

0

希望對大家有用

#include <QScopedPointer> 
class target 
{ 
public: 
int var; 
}; 
class logic 
{ 
public: 
QScopedPointer<target> variable; 
target* variable2; 
}; 
int main() 
{ 
logic LogicClass; 
LogicClass.variable.reset(new target); 
LogicClass.variable->var=10; 
cout<<LogicClass.variable->var<<endl; 

LogicClass.variable2 = new target; 
LogicClass.variable2->var = 20; 
cout<<LogicClass.variable2->var<<endl; 
delete LogicClass.variable2; 
return 0; 
} 
相關問題