| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 961 人关注过本帖
标题:基类指针指向的对象是哪个子类的?
只看楼主 加入收藏
smallcat
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-2-20
收藏
 问题点数:0 回复次数:5 
基类指针指向的对象是哪个子类的?

我的类关系是这样的:
CShape 是一个抽象基类,它派生了CLine 类和CCircle类.
分别创建了一个CLine 对象和一个CCircle对象.并建立CShape 指针分别指向这两个对象,在后来的过程中如何根据CShape指针判断指向的对象是CLine对象还是CCircle对象呢?

[此贴子已经被作者于2006-5-29 13:20:22编辑过]

搜索更多相关主题的帖子: 指针 基类 对象 CLine CCircle 
2006-05-29 13:19
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
你所说的功能,其实就相当于MFC的Cbject类的运行时判定类信息功能.

=×&D o I p R e E n C g T l X&×=
2006-05-29 13:42
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
不知道MFC什么的
不过,楼主用static不行么
在一个类用一个标记
在另一个用另一个标记

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-29 17:21
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
收藏
得分:0 

一个演示程序
如果LZ是使用VC来做平台,打开Project->settings->c/c++->category->c++ language,将Enable Run-Time Type Infomation(RTTI)选中,去除编译警告
#include<iostream>
#include<typeinfo>
#include<string>
using namespace std;
class CShape
{
public:
virtual int abc()=0;
};
class CLine:public CShape
{
int abc()
{
return 4;
}
};
class CCircle:public CShape
{
int abc()
{
return 3;
}
};
void main()
{
CShape *op;
CCircle ccc;
op=&ccc;
if(!strcmp(typeid(*op).name(),"class CCircle"))
cout<<"CCircle";
}

[此贴子已经被作者于2006-5-29 17:58:20编辑过]


2006-05-29 17:57
forrestlion
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-17
收藏
得分:0 
同意楼上的方式:typeid
2006-05-30 14:32
smallcat
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-2-20
收藏
得分:0 

谢谢各位了,问题解决了。呵呵。.....


逃避不一定躲的过,面对不一定最难过。孤单不一定不快乐,正如得到不一定能长久~~!◎#¥%
2006-06-08 23:13
快速回复:基类指针指向的对象是哪个子类的?
数据加载中...
 
   



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

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