不同类之间访问对象的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:34:28
文件1 TestDlg.h

#include "btn.h"
Class CTestDlg: public CDialog
{
CBtn m_btn1;//关联的是两个按钮
CBtn m_btn2;
}

文件2 Btn.h

class CBtn : public CButton()
{

}

文件3 Btn.cpp

CBtn::CBtn()
{
m_btn1.ShowWindow(SW_SHOW); //错误句,提示“m_btn1 : undeclared identifier”
}

在文件3中,为什么不能直接用m_btn1.ShowWindow(),如果说 m_btn1没定义,那我在文件2中加入#include "TestDlg.h"之后,编译时还是出现"未定义"
的错误提示。
正确的操作又应该怎么样呢?

你难道没发现m_btn1是CTestDlg类的成员吗?
CBtn::CBtn()
{
m_btn1.ShowWindow(SW_SHOW); //错误句,提示“m_btn1 : undeclared identifier”
} //这段代码只是引用CBtn类的m_btn1成员而已,因为CBtn类没有m_btn1成员,所以会提示未定义的标识符。你把m_btn1.去掉,写成
CBtn::CBtn()
{
ShowWindow(SW_SHOW);
}
试试。

你的设计思路也有一点问题

m_btn1是CBtn的对象,不是CBtn的成员变量。