| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1068 人关注过本帖
标题:我这个多态性为什么用起来不灵啊!!!!!
取消只看楼主 加入收藏
xiangz9025
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-10-30
结帖率:100%
收藏
 问题点数:0 回复次数:1 
我这个多态性为什么用起来不灵啊!!!!!
#include <iostream.h>
unsigned long left(unsigned long num,unsigned  ct);
char *abc(const char *str,int n=1);
void main()
{
//    using namespace std;  //面向对象
    char *trip = "Hawaii";
    unsigned long n = 12345678,m;
    unsigned i;
    char *temp;
    for(i=1;i<10;i++)
    {
        m = left(n,i);
        cout<<m<<endl;
        temp = abc(trip,i);
        cout<<temp<<endl;
//        delete [] temp;
    }
}
char *abc(const char *str,int n)
{
    if(n<0)
      n=0;
    char *p = new char[n+1];   //分配一个新的空间,还要在主函数里面
    for(int i=0;i<n&&str[i];i++)
        p[i] = str[i];
    while(i<=n)
    {
        p[i]='\0'; //把空域的部分
        i++;
    }
    return p;
}
unsigned long left(unsigned long num,unsigned ct)
{
    int di=1;                              
    unsigned long n;
    n = num;
    while(n/=10)                          //计算数字符的个数
        di++;
    if(di>ct)
    {
        ct=di-ct;
        while(ct--)
            num/=10;
        return num;
    }
    else
        return num;
}


上面是一个完整运行正常的程序,但是我现在想联系一下多态性,结果我把那个指针函数也变成char  *left(const char *str,int n),咋就运行不正常了呢!看运行结果好象c++就没有多态性,识别不了。


那位大哥大姐帮忙解释一下,小弟不胜感激!!!!!
搜索更多相关主题的帖子: 多态 
2007-12-11 16:10
xiangz9025
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-10-30
收藏
得分:0 
小弟,听到各位大师的讲解,真是茅塞顿开啊!是啊!刚刚看了书,是自己把多态性理解错了!!!
2007-12-16 23:41
快速回复:我这个多态性为什么用起来不灵啊!!!!!
数据加载中...
 
   



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

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