我这个多态性为什么用起来不灵啊!!!!!
#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++就没有多态性,识别不了。
那位大哥大姐帮忙解释一下,小弟不胜感激!!!!!