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 类的父子实现的主要内容,如果未能解决你的问题,请参考以下文章
从 CDialog 派生的对话框在 DoModal (MFC/C++) 之后返回 -1
c++类后面带一个:什么意思 class CAboutDlg : public CDialog//什么意思? public: CAboutDlg(); 求解释