为了账号安全,请及时绑定邮箱和手机立即绑定

重载函数的类型转换

void fun(int i, int j, int k = 10);

void fun(double i, double j = 1.2);

int main(void){

fun(0);

fun(10);


后面对fun函数调用的时候,编译器会直接将0和10与double类型的绑定。所以应该输出是0.0 1.2 和 10.0 1.2 但是,我的输出结果为0 1.2 和10 1.2 是为什么呀

正在回答

2 回答

能把全部代码贴出来看一下吗?

0 回复 有任何疑惑可以回复我~
#1

Maseghini4089428 提问者

恩恩,下面的朋友发出来了
2017-03-24 回复 有任何疑惑可以回复我~
#2

慕粉1356576729 回复 Maseghini4089428 提问者

ANSI C++里一个浮点型若是小数部分为0,使用cout直接输出必然是不带小数点的。 例如 float a=3; 若想输出3.0,输出代码要这样写: cout << showpoint << a; 以上参考自百度知道别人的回答,不过如果是用printf输出的话就会自动带上小数部分啦
2017-03-25 回复 有任何疑惑可以回复我~
#3

Maseghini4089428 提问者

非常感谢!-w-
2017-03-29 回复 有任何疑惑可以回复我~

#include<iostream>

#include<stdio.h>

using namespace std;


void fun(int i,int j,int k=10);

void fun(double i,double k=0,double j=1.2);


int main(void)

{

fun(0);

fun(10);

system("pause");

return 0;

}


void fun(int i,int j,int k)

{

cout<<i<<","<<j<<","<<k<<endl;

return ;

}


void fun(double i,double k,double j)

{

cout<<i<<","<<k<<","<<j<<endl;

return ;

}


0 回复 有任何疑惑可以回复我~
#1

Maseghini4089428 提问者

是的是的,但是 它输出的时候 应该会吧int 10 变为 double 10.0才对呀,但是没有的。。这是为啥呀
2017-03-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

重载函数的类型转换

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信