파생 클래스에서 Base 클래스 데이터 멤버에 액세스하려면 어떻게해야합니까? customizeCSMWindow()
생성자가 subMenuLists::changeWidget()
에 초기화되었습니다.기본 클래스의 공용 데이터 멤버에 액세스하는 방법?
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
에 액세스 할 수?
편집 : 나는, 내 질문에 설명 당신이 나를 도울 수 있는지 확인하고 싶습니다
. 내가 원하는 것은 cusomizeCSMWidnow
construtor에 할당되고있는 docElem
의 값을 얻으려면 subMenuList::changeWidget()
함수에 있습니다. 지금은 docElem
의 changeWidget
함수에 액세스 할 때 null/초기화되지 않은 값을 제공합니다.
'Q_OBJECT'란 무엇입니까? BTW - 공개 데이터 멤버가있는 것은 좋지 않습니다. getter와 setter를 가지고 더 좋게 –
그냥 사용하십시오 :'docElem.doWhatever();'?? –
docElem에 대한 액세스가 허용되지만 customCSMWindow의 생성자에서 할당 된 docElem의 값을 가져 오지 못합니다. 내가 놓친 게 있니? – user3187568