当前位置: 代码迷 >> 综合 >> C++ 函数多态
  详细解决方案

C++ 函数多态

热度:91   发布时间:2024-03-07 22:44:51.0
/* leftover.cpp* 函数重载(多态)的条件:* 1)函数名必须相同* 2)函数列表必须不同(个数不同、类型不同、参数列表顺序不同)* 3)函数返回值可以相同也可以不相同* 4)仅仅返回类型不同,不足以成为函数重载*/#include <iostream>
unsigned long left(unsigned long num, unsigned ct);
char * left(const char * str, int n = 1);int main() {using namespace std;const char * trip = "Haweii!!"; // test valueunsigned long n = 12345678; // test valueint i;char * temp;for (i = 1; i < 10; i++) {cout << left(n, i) << endl;temp = left(trip, i);cout << temp << endl;delete[] temp;}return 0;
}unsigned long left(unsigned long num, unsigned ct) {unsigned digits = 1;unsigned long n = num;if (ct == 0 || num == 0)return 0;while (n /= 10)digits++;if (digits > ct) {ct = digits - ct;while (ct--)num /= 10;return num;}elsereturn num;
}char * left(const char * str, int n) {if (n < 0)n = 0;char * p = new char[n + 1];int i;for (i = 0; i < n && str[i]; i++)p[i] = str[i];while (i <= n)p[i++] = '\0';return p;
}

 

  相关解决方案