MFC 利用多态的特性实现子窗口同时存在一个

多个子窗口的类都继承同一父类 CDialogEx
于是在主窗口我声明一个CDialogEx指针
通过判断该指针是否为空 不为空则视为有一子窗口存在
注意这里介绍的是 非模态化窗口的关闭

你可以在任何时候调用DestroyWindow()以达到彻底销毁自身对象的作用。(DestroyWindow()的调用会引起OnDestroy()的调用)

if (m_dlg != NULL) {
	m_dlg->DestroyWindow();
}
m_dlg = new CCnturReadDlg;
m_dlg->Create(IDD_CNTURREADDLG);
m_dlg->ShowWindow(SW_SHOW);

注意 子窗口的类 都只重写了OnInitDialog函数 和 工具栏按钮响应函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是利用多态一个英雄无敌的示例代码: ```java public class Hero { private String name; private int hp; private int attack; public Hero(String name, int hp, int attack) { this.name = name; this.hp = hp; this.attack = attack; } public void attack() { System.out.println(name + " 发起了攻击,造成了 " + attack + " 点伤害。"); } public void takeDamage(int damage) { hp -= damage; System.out.println(name + " 受到了 " + damage + " 点伤害,剩余生命值:" + hp); } } public class Warrior extends Hero { public Warrior(String name, int hp, int attack) { super(name, hp, attack); } @Override public void attack() { System.out.println("战士 " + getName() + " 发起了攻击,造成了 " + getAttack() + " 点伤害。"); } @Override public void takeDamage(int damage) { System.out.println("战士 " + getName() + " 受到了 " + damage + " 点伤害,剩余生命值:" + (getHp() - damage)); setHp(getHp() - damage); if (getHp() <= 0) { System.out.println("战士 " + getName() + " 已经死亡。"); } } } public class Mage extends Hero { public Mage(String name, int hp, int attack) { super(name, hp, attack); } @Override public void attack() { System.out.println("法师 " + getName() + " 发起了攻击,造成了 " + getAttack() + " 点伤害。"); } @Override public void takeDamage(int damage) { System.out.println("法师 " + getName() + " 受到了 " + damage + " 点伤害,剩余生命值:" + (getHp() - damage)); setHp(getHp() - damage); if (getHp() <= 0) { System.out.println("法师 " + getName() + " 已经死亡。"); } } } public class Main { public static void main(String[] args) { Hero hero1 = new Warrior("战士1", 100, 20); Hero hero2 = new Mage("法师1", 80, 30); hero1.attack(); hero2.attack(); hero1.takeDamage(10); hero2.takeDamage(20); } } ``` 这个示例代码定义了一个 Hero 类,它有一个名字、生命值和攻击力属性,以及攻击和受伤的方法。然后它定义了两个类 Warrior 和 Mage,它们分别继承 Hero 类,并重写了攻击和受伤的方法。在 Main 类中,它创建了一个战士和一个法师对象,并分别调用它们的攻击和受伤方法。因为它们都是 Hero 类型的对象,所以可以通过多态的方式来调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠风丶北枝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值