class MyDialog:public CDialog
{......
void *pFatherDialog;
......
}class CFatherDialog:public CDialog
{
MyDialog m_myDialog;
int number;
......
}BOOL CFatherDialog::OnInitDialog()
{......
m_myDialog.pFatherDialog = this;
}
再在MyDialog的一函数中
void CMyDialog::Function()
{
pFatherDialog->number = 0;
......
}现在的问题是pFatherDialog可以取得CFatherDialog 对象的地址,即pFatherDialog有值但却无法取得成员变量number,即上面的pFatherDialog->number = 0通不过,报告说->左边应是一指针。为什么?
小弟才疏学浅,还请各位高手海涵~!
{......
void *pFatherDialog;
......
}class CFatherDialog:public CDialog
{
MyDialog m_myDialog;
int number;
......
}BOOL CFatherDialog::OnInitDialog()
{......
m_myDialog.pFatherDialog = this;
}
再在MyDialog的一函数中
void CMyDialog::Function()
{
pFatherDialog->number = 0;
......
}现在的问题是pFatherDialog可以取得CFatherDialog 对象的地址,即pFatherDialog有值但却无法取得成员变量number,即上面的pFatherDialog->number = 0通不过,报告说->左边应是一指针。为什么?
小弟才疏学浅,还请各位高手海涵~!
这样也是不行的哦。会不会是其他原因呢?
((CFatherDialog *)pFatherDialog)->number = 0;注意包含头文件
{
MyDialog m_myDialog; // 這裡是類對像,而下面用的時候,怎麼將指針給它?改成MyDialog *m_myDialog;
int number;
......
}BOOL CFatherDialog::OnInitDialog()
{......
m_myDialog.pFatherDialog = this;//還有一個問題,你的pFatherDialog我怎麼沒見到賦值呀?
}
这样也是不行的哦。会不会是其他原因呢?這樣不行的提示是什麼?帖出來!
{
MyDialog m_myDialog; // 這裡是類對像,而下面用的時候,怎麼將指針給它?改成MyDialog *m_myDialog;
int number;
......
}
但我下面用的时候是m_myDialog.pFatherDialog=this啊,this 指针是赋给pFatherDialog的啊BOOL CFatherDialog::OnInitDialog()
{......
m_myDialog.pFatherDialog = this;//還有一個問題,你的pFatherDialog我怎麼沒見到賦值呀?
}确实pFatherDialog是没赋值,不规范但没问题,我的pFatherDialog是可以指向this的,即pFatherDialog的值是this 指向的那个地址。#####################################################################################((CFatherDialog *)pFatherDialog)->number = 0;注意包含头文件我把pFatherDialog的定义改为 CFatherDialog *pFatherDialog; 问题还是一样的。
头文件刚开始忘了,后来加上来了。
{......
CFatherDialog *pFatherDialog;//這裡更改.
......
}class CFatherDialog:public CDialog
{
MyDialog m_myDialog;
int number; //這裡確保是public:型的變量
......
}BOOL CFatherDialog::OnInitDialog()
{......
m_myDialog.pFatherDialog = this;
}
再在MyDialog的一函数中
void CMyDialog::Function()
{
pFatherDialog->number = 0;
......
}
//將上面的提示修改後,看還會提示什麼錯誤?
((CFatherDialog *)pFatherDialog)->number=0;就不會有錯了。
{......
void *pFatherDialog;//MyDialog成员
......
}class CFatherDialog:public CDialog
{
MyDialog m_myDialog;
int number;//CFatherDialog成员
......
}BOOL CFatherDialog::OnInitDialog()
{......
m_myDialog.pFatherDialog = this;
}
再在MyDialog的一函数中
void CMyDialog::Function()
{
pFatherDialog->number = 0;//虽然可以将CFatherDialog指针赋给pFatherDialog
//但pFatherDialog和number 并不属于同一类,
//所以应该会有编译错误.
......
}
这位我认为你说的很有道理,请教你一下那我怎么样才能在CMyDialog的函数中去取得CFatherDialog中的成员变量呢?