用C ++访问受保护的成员

时间:2015-03-11 10:50:22

标签: c++

如何访问“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

更改构造函数以获取一个类的派生实例会解决问题吗?如果是这样,我怎么能这样做呢?

2 个答案:

答案 0 :(得分:1)

CChooseDirDlg内将friend声明为SecondDlg。 这将授予CChooseDirDlg 所有成员SecondDlg的访问权限,即使是私有成员。

如果C ++实现了acquaintance访问修饰符以授予对受保护成员的访问权限,我就不会介意; - )

答案 1 :(得分:1)

继承它

class CChooseDirDlg : public SecondDlg
{}

将该类声明为朋友

class SecondDlg : public CDialog
{
    friend class CChooseDirDlg;
}