| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1068 人关注过本帖
标题:我这个多态性为什么用起来不灵啊!!!!!
只看楼主 加入收藏
xiangz9025
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-10-30
结帖率:100%
收藏
 问题点数:0 回复次数:8 
我这个多态性为什么用起来不灵啊!!!!!
#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
mfkpgfsbihc
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-11-25
收藏
得分:0 
这叫多态吗!
2007-12-15 20:13
独狐箭
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-12-5
收藏
得分:0 
哈哈,多态性简单来说就是函数名字相同,但在运行的时候根据参数的不同而执行不同的函数
2007-12-15 21:58
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
楼上说的叫 函数重载,也可以看成多态的一类。

多态分编译时多态,和运行时多态,c++里编译时多态包扩“函数重载”,“模板”“泛型”。
而运行时多态指“通过虚拟机制去调用函数”。

Fight  to win  or  die...
2007-12-15 22:42
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS,求教,请问模板和泛型有什么区别?

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-16 05:16
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
回复 7# 的帖子
通过模板实现泛型编程,即将不同的类型应用到同一段代码实现,提高了代码的重用性,节省了资源。

可以认为泛型就是用模板,不过我觉得还是要区分开,因为泛型是一种思想,而模板是实现这种思想的一个技术。

薄见。

Fight  to win  or  die...
2007-12-16 10:40
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
LS说得好啊~~~~~

樱花大战,  有爱.
2007-12-16 12:16
xiangz9025
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-10-30
收藏
得分:0 
小弟,听到各位大师的讲解,真是茅塞顿开啊!是啊!刚刚看了书,是自己把多态性理解错了!!!
2007-12-16 23:41
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
回复 8# 的帖子
谢谢回答,受教了~~

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-19 01:43
快速回复:我这个多态性为什么用起来不灵啊!!!!!
数据加载中...
 
   



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

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