标题:【提问】STL链表的运用
作者:zccmin
日期:2005-11-23 09:15
内容:
我自己实现一个类,基于QWideget,我想把它的对象放入链表,做法如下:
class Myview :public QWidget
{
public:
view(QWidget parent,const char* name);
..........................
}
void main()
{
list mylist;
Myview view(this);
mylist.push_back(view);
}
我觉得是真确的,可是编译时出现错误提示如下:
/usr/include/g++-3/stl_construct.h: In method `Myview::Myview
(const Myview &)':
/usr/include/g++-3/stl_construct.h:48: instantiated from `construct (_T1 *, const _T2 &) '
PLC_LAD_IL.cpp:293: instantiated from here
/usr/local/qt/include/qwidget.h:685: `QWidget::QWidget (const QWidget
&)' is private
/usr/include/g++-3/stl_construct.h:48: within this context
请高手指点。
#1 [XChinux 11-23 09:17]
void main()
{
list mylist;
Myview view(this);
mylist.push_back(view);
上面的this是指什么??
#2 [XChinux 11-23 09:18]
而且你的构造函数要求有两个参数,你的使用方法不正确。
#3 [zccmin 11-23 11:20]
两个参数是没问题的,因为在构造函数时,const char*name=0
至于this,是因为:由于程序比较大,我只截了一部分,完整的用法是:
class Mywidget :public QWdiget
{
.....
list mylist;
pulbic slots:
void viewlist_slot();
......
};
void Mywidget ::viewlist_slot()
{
Myview view(this);
mylist.push_back(view); //如果这行不要,程序编译是正确的
}
#4 [zccmin 11-23 15:03]
高手给我看看哦
#5 [htyoung 11-23 17:15]
看错误信息好像是你放入list的成员是private 或是你的list是private的,但是你在class外使用了
在qt中也许用 QValueList或Qptrlist比较简单