| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1059 人关注过本帖
标题:类的相关问题
只看楼主 加入收藏
BlueMouse
Rank: 1
来 自:贵州
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2008-9-6
收藏
 问题点数:0 回复次数:17 
类的相关问题
class GUIBASE
{
    public:
        HWND    hWnd;

        virtual void onLoad(void){};
        virtual void onUnload(void){};
        virtual void onClick(void){};
};

class cWindow:public GUIBASE
{
    public:
         void onLoad(void){};
    void onUnload(void){};
    void onClick(void){};
};

class MyWindow:public cWindow
{
    public:
        void onLoad(void){MessageBox(null,"被成功调用了!", "测试", MB_OK);};
};

-----------------------------
我的问题是! 当创建一个 MyWindow 的对象时 在cWindow中如何调用 MyWindow 的 onLoad 方法?
难点在于MyWindow与cWindow下分离开的!我的意思是说在cWindow操作时完全不知道有 MyWindow这么一个子类!也就是操作任何从cWindow派生的子类的方法!有办法吗?
搜索更多相关主题的帖子: 操作子类的“方法” 
2008-09-07 13:56
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
虚函数

学习需要安静。。海盗要重新来过。。
2008-09-07 14:45
守鹤
Rank: 4
来 自:山東臨沂
等 级:贵宾
威 望:12
帖 子:337
专家分:0
注 册:2008-6-20
收藏
得分:0 
子类可以调用父类的方法,但父类却不能调用子类的方法
2008-09-07 14:51
BlueMouse
Rank: 1
来 自:贵州
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2008-9-6
收藏
得分:0 
如果真的元法做到!但只能说明C++的面向对象特性还不是很强大!
2008-09-07 14:53
BlueMouse
Rank: 1
来 自:贵州
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2008-9-6
收藏
得分:0 
我认为是可以做到的!但是我没有试成功!
为什么呢!从原理上来看
~~~~~~~~~~~~~~~~~~~~~~
因为 GUIBASE 和 cWindow 都是不需要实现的!也就是说他们没有对象的!
而你生成的对象都是派生类 MyWindow的对象, 所以我认为按原理说应该是
父类的对象不能调用派生类MyWindow的对象的成员才合理!
而通过声明指向基类GUIBASE的指针通过虚特性,应该可以调用派生类的对象的虚函数实现才对的吧! 应为生成的对象是派生类MyWindow的对象呀!不过我就是没有搞成功! 问题在于指针声明成那一个类的它就只能调用那个杰的对应的虚函数的实现体!而我不可能把指针声明成的派生类的类型。因为我要的是派生类可以重新实现虚函数,也可以不实现!当不实现时就用 cWindow 的对应虚函数实现体!我被困很久了!
2008-09-07 15:08
BlueMouse
Rank: 1
来 自:贵州
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2008-9-6
收藏
得分:0 
我的目的是要用面向对象的思想来包装一个自己的 windows 程序的基本框架!
也就是像我做要一个库! GUIBASE, cWindow 是我自定义和实现的!

而 MyWindow 对库来说是不可知的!因为用库编程人员从cWindow派生出去后给的类名对“库”来说是不可知的!
2008-09-07 15:12
shaoyuan
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2008-9-7
收藏
得分:0 
不行,如果不知道有子类的存在又怎么能调用它。
2008-09-07 22:37
冰冷剑
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-7
收藏
得分:0 
是可以的!定义一个函数,传递的参数是父的引用.
例:void show_result(GUIBASE& gb)
{
    gb.onLoad();
}

MyWindow mw;
show_result(mw);
2008-09-08 12:29
BlueMouse
Rank: 1
来 自:贵州
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2008-9-6
收藏
得分:0 
没有问题·!试过了!是我的程序那里出了问题!但不是类和虚函数的问题
2008-09-08 13:09
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
LZ问题解决没? 是要创建对象的时候调用?  随便问下LZ是贵州大学的?

樱花大战,  有爱.
2008-09-08 17:12
快速回复:类的相关问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027280 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved