【发布时间】:2014-01-12 15:13:26
【问题描述】:
如何访问派生类中的基类数据成员?
我想使用 docElem 数据成员,它已经在 subMenuLists::changeWidget() 中初始化了 customizeCSMWindow()constructor。
class myWidget
{
public :
QDomElement docElem;
QDomDocument *menuOrderXMLFile;
};
class subMenuLists : public QListWidget , public myWidget
{
Q_OBJECT
public slots:
void changeWidget( int index);
};
class customizeCSMwindow : public QDialog , public myWidget
{
Q_OBJECT
public :
subMenuLists *menuList;
customizeCSMwindow(QString);
}
customizeCSMwindow::customizeCSMwindow(QString fileName)
{
menuOrderXMLFile = new QDomDocument();
file = new QFile(fileName);
QString errorStr;
int errorLine;
int errorColumn;
if(!menuOrderXMLFile->setContent(file, false , &errorStr, &errorLine,
&errorColumn))
std::cout<<"not found \n";
else
docElem = menuOrderXMLFile->documentElement();
}
void subMenuLists::changeWidget(int index)
{
clear();
// How to access that docElem here??
}
如何访问void subMenuLists::changeWidget()函数中的docElem?
编辑:
我想解释一下我的问题,看看你能不能帮助我。我想要的是,在subMenuList::changeWidget() 函数中获取cusomizeCSMWidnow 构造函数中分配的docElem 的值。截至目前,当我在 changeWidget 函数中访问 docElem 时,它会给出 null/未初始化的值。
【问题讨论】:
-
什么是
Q_OBJECT?顺便说一句 - 拥有公共数据成员不是一个好主意。最好有 getter 和 setter -
随便用吧:
docElem.doWhatever();?? -
允许访问 docElem,但问题是我没有得到在 customizeCSMWindow 的构造函数中分配给它的 docElem 的值。我错过了什么吗?
-
@EdHeal 请忽略 Q_OBJECT 的事情。我想解释一下我的问题,看看你能不能帮助我。我想要的是,获取在 subMenuList::changeWidget() 函数的 cusomizeCSMWidnow 构造函数中分配的 docElem 的值。截至目前,当我在 changeWidget 函数中访问 docElem 时,它给出了 null/未初始化的值。
-
你错过了一些东西。你真正设置了什么,你可以访问什么?!看我的回答!
标签: c++