如何访问“ChooseDirDlg”类中的“SecondDlg”类中声明的受保护成员?以下是类声明:
class CChooseDirDlg : public CDialog
{
// Construction
public:
CChooseDirDlg(CWnd* pParent = NULL); // standard constructor
class SecondDlg : public CDialog
{
// Construction
public:
SecondDlg(CWnd* pParent = NULL); // standard constructor
更改构造函数以获取一个类的派生实例会解决问题吗?如果是这样,我怎么能这样做呢?
答案 0 :(得分:1)
在CChooseDirDlg
内将friend
声明为SecondDlg
。
这将授予CChooseDirDlg
所有成员SecondDlg
的访问权限,即使是私有成员。
如果C ++实现了acquaintance
访问修饰符以授予对受保护成员的访问权限,我就不会介意; - )
答案 1 :(得分:1)
继承它
class CChooseDirDlg : public SecondDlg
{}
将该类声明为朋友
class SecondDlg : public CDialog
{
friend class CChooseDirDlg;
}