Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341203
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:01

#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---------------------

阅读(1289) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~