CDialog 类的父子实现

Posted

技术标签:

【中文标题】CDialog 类的父子实现【英文标题】:Parent-Child implementation of CDialog classes 【发布时间】:2015-11-03 14:04:38 【问题描述】:

场景:我想在 child 中使用 Parent 方法。是否可以创建一个包含两个对话框类的解决方案,如下所示?

//Parent is created using class wizard(inherited from CDialog)  
class CDlgParent : public CDialog


//Child class created using class wizard(inherited from CDialog) and then  
  //changed the inheritance  
class CDlgChild : public CDlgParent

【问题讨论】:

1.我需要的是两个对话框类,一个是父级,另一个是从父级继承的。子对话框使用基本方法。任何帮助表示赞赏。 是的,这是可能的。你试过了吗?这是一个真正简单的过程。 【参考方案1】:

只是举例

class A

private:
    void privateMethod()
protected:
    void protectedMethod()
public:
    void publicMethod()
;
class B : public A

    void methodB()
    
        //privateMethod();
        protectedMethod();
        publicMethod();
    
;

只需将其复制到您的代码中,您就会看到它会编译。 如果您取消注释该行,它将不再编译,并给出如下错误:

无法访问在类“A”中声明的私有成员

所以你不能从B使用的唯一方法是从A继承的私有方法,所有其他的都可以正常使用

【讨论】:

以上是关于CDialog 类的父子实现的主要内容,如果未能解决你的问题,请参考以下文章

在 MFC 应用程序中动态创建控件

element ui dialog 父子组件传值

从 CDialog 派生的对话框在 DoModal (MFC/C++) 之后返回 -1

对话框类CDialog

c++类后面带一个:什么意思 class CAboutDlg : public CDialog//什么意思? public: CAboutDlg(); 求解释

vue里面的父子通信