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

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

C++中函數(shù)模板怎么用?

C++中函數(shù)模板怎么用?

C++
千萬里不及你 2019-02-15 19:11:02
為什么下面的沒法運(yùn)行啊,怎么改。( //表示系統(tǒng)報(bào)的錯(cuò)誤)#include<iostream>using namespace std;template<typename T>; //syntax error : '<end Parse>'T max(T a,T b,T c){ //missing ';' before '{'if(b>a) a=b;if(c>a) a=c;return a;}int main(){int i1=8,i2=5,i3=6,i;double d1=56.9,d2=90.765,d3=43.1,d;long g1=67843,g2=-456,g3=78123,g;i=max(i1,i2,i3); //'i' : undeclared identifier // 'max' : undeclared identifier d=max(d1,d2,d3); //'d' : undeclared identifier // 'max' : undeclared identifierg=max(g1,g2,g3); //'g' : undeclared identifier // 'max' : undeclared identifiercout<<"i_max="<<i<<endl;cout<<"d_max="<<d<<endl;cout<<"g_max="<<g<<endl;return 0;}
查看完整描述

2 回答

?
慕雪6442864

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

很不好意思,Java的特性比C++少得多。Java不支持模板。只支持很少的類似于C++模板的語法來實(shí)現(xiàn)很有限的泛型編程。

Java對(duì)泛型編程的支持也是最近才加進(jìn)去的,而且支持的很不好。你就不用指望能像C++那樣用它了。

Java是一個(gè)非常純粹的OOP語言,它天生就是相對(duì)動(dòng)態(tài)的、后期的,編譯期處理的信息非常少,這和C++強(qiáng)靜態(tài)的特性是完全相反的。

Java的絕大部分類型信息都屬于RTTI,也就是在運(yùn)行時(shí)動(dòng)態(tài)獲取,不像C++是在編譯期由編譯器推導(dǎo)的,所以Java基本上不可能支持C++那樣靈活的模板。

Java的泛型也是,說白了只是個(gè)障眼法,用類似C++那樣的模板語法來包裝了其面向?qū)ο髣?dòng)態(tài)cast的本質(zhì)而已。
舉例說,java中的Vector<int>,你給里面保存int的時(shí)候,每一個(gè)int都是先被包裝成一個(gè)Integer對(duì)象然后塞進(jìn)去,取出來的時(shí)候是先取出Object對(duì)象,轉(zhuǎn)換成Integer對(duì)象,然后再?gòu)睦锩嫒〕鰅nt這個(gè)整數(shù),繞了很大一個(gè)彎子。
雖然從代碼上寫的和C++差不多都很簡(jiǎn)潔,但是實(shí)際的效率和C++差了n個(gè)數(shù)量級(jí)。這點(diǎn)上實(shí)在是比較惡心,C#都做得比它好,C#至少對(duì)于值類型還是會(huì)實(shí)例化代碼的。

Java天生就是一個(gè)鼓勵(lì)動(dòng)態(tài)化、運(yùn)行期化、OOP化的一個(gè)語言,所以它不適合使用C++中那些泛型編程的范式來設(shè)計(jì)程序。你如果能夠忍受Java的裝箱拆箱的巨大效率損失,你可以用OOP的方式來實(shí)現(xiàn)那種同一個(gè)函數(shù)服務(wù)多種類型的想法,但是的確很低效。



查看完整回答
反對(duì) 回復(fù) 2019-02-27
  • 2 回答
  • 0 關(guān)注
  • 525 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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