亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

重載函數的類型轉換

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++遠征之離港篇
  • 參與學習       122678    人
  • 解答問題       493    個

C++掃清通往面向對象的最后一道障礙,將所有知識點融會貫通

進入課程

重載函數的類型轉換

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號