2012-08-22 21 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; 
} 
相关问题