第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

請(qǐng)問各位大神,c++如何為定義不確定變量類型的參數(shù)?

請(qǐng)問各位大神,c++如何為定義不確定變量類型的參數(shù)?

C++
手掌心 2019-07-07 08:04:37
如圖,我應(yīng)該怎么定義main函數(shù)里面的number1和number2
查看完整描述

3 回答

?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊


你這是不可能,也不符合理論的。理由是:
number1和number2的類型必須確定,當(dāng)cin讀入數(shù)據(jù)后存入變量時(shí),變量的內(nèi)存應(yīng)該已經(jīng)分配,如果類型未知那么意味編譯器無法知道內(nèi)存大小。即使C++11標(biāo)準(zhǔn)的auto應(yīng)該也不行,因?yàn)槟愕膶懛ㄊ嵌x性聲明,定義意味著分配內(nèi)存,這時(shí)如果還未看見變量的樣子,auto應(yīng)該都是無法工作的。由于手頭暫時(shí)不能使用VS,故未嘗試,但不認(rèn)為auto能工作。
一種可能的解決方案是,你按照字符串方式讀入數(shù)據(jù)(string或者char[]),然后自己編寫中間代碼解析字符串,畢竟不同的數(shù)據(jù)類型會(huì)有不同的外在特征。


查看完整回答
反對(duì) 回復(fù) 2019-07-08
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

來自電腦網(wǎng)絡(luò)類芝麻團(tuán) 推薦于2016-04-12

可以都是double,或者都是int
也可以一個(gè)int,一個(gè)double,甚至還可以是其它類型。
demo.get(number1,number2);時(shí),它會(huì)自動(dòng)匹配,可能完全匹配,也可能是向上匹配,如若是,int,char那么會(huì)升級(jí)成int,int
同理,int ,double會(huì)變成double ,double


查看完整回答
反對(duì) 回復(fù) 2019-07-08
?
交互式愛情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊



c++怎樣編寫不確定參數(shù)個(gè)數(shù)的函數(shù)

C++定義的函數(shù)是可以支持函數(shù)參數(shù)個(gè)數(shù)不確定的。VA_LIST是在C++語言中解決變參問題的一組宏,所在頭文件:#include <stdarg.h>,用于獲取不確定個(gè)數(shù)的參數(shù)同時(shí)使用...代替多個(gè)參數(shù),調(diào)用時(shí)只需要根據(jù)需要傳入多個(gè)參數(shù)。

VA_LIST的用法:

  1. 首先在函數(shù)里定義一具VA_LIST型的變量,這個(gè)變量是指向參數(shù)的指針;

  2. 然后用VA_START宏初始化剛定義的VA_LIST變量;

  3. 然后用VA_ARG返回可變的參數(shù),VA_ARG的第二個(gè)參數(shù)是你要返回的參數(shù)的類型(如果函數(shù)有多個(gè)可變參數(shù)的,依次調(diào)用VA_ARG獲取各個(gè)參數(shù));

  4. 最后用VA_END宏結(jié)束可變參數(shù)的獲取。

參考代碼:求多個(gè)數(shù)得平均值

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include <cstdarg>

#include <iostream>

using namespace std;

double average ( int num, ... )

{

  va_list arguments;                     // A place to store the list of arguments

  double sum = 0;

  va_start ( arguments, num );           // Initializing arguments to store all values after num

  for ( int x = 0; x < num; x++ )        // Loop until all numbers are added

    sum += va_arg ( arguments, double ); // Adds the next value in argument list to sum.

  va_end ( arguments );                  // Cleans up the list

  return sum / num;                      // Returns some number (typecast prevents truncation)

}

int main()

{

  cout<< average ( 3, 12.2, 22.3, 4.5 ) <<endl;

  cout<< average ( 5, 3.3, 2.2, 1.1, 5.5, 3.3 ) <<endl;

}


 


查看完整回答
反對(duì) 回復(fù) 2019-07-08
  • 3 回答
  • 0 關(guān)注
  • 2642 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)