#include
inline void show(signed short int) {cout << "signed short int" << endl;}
inline void show(signed long int) {cout << "signed long int" << endl;}
void main(void){
show(3);
cin.ignore(cin.rdbuf()->in_avail()+1);
}
上面的代码是错的!
这个是关于函数的重载(论理是函数重载应在参数个数或参数类型上有所区别)
signed short int 与 signed long int 都是整形数据只是一个短一个长。
代码中的3不能识别是什么整形(报错),改为3L后才认为是长整形,调用相应函数。
就是调用不到形参为短整形的那个函数,把main函数内的代码改为下面才能调用到短整形那个函数:
void main(void){
signed short int i = 3; //定义1个短整形变量来调用那个函数
show(i);
cin.ignore(cin.rdbuf()->in_avail()+1); //暂停
}
或
void main(void){
show((signed short int)3); //用强制转换成短整形来调用那个函数
cin.ignore(cin.rdbuf()->in_avail()+1); //暂停
}
目前我只知道这几种方法,说了一大堆,我就是想用常量的方式去调用短整形那个函数,长整形的那个函数都可以用(3L)这个常量调用到,短整形有没有这样类似的方法呀?
--------------------next---------------------
阅读(1293) | 评论(0) | 转发(0) |