第一篇:順序表有參構(gòu)造函數(shù)SeqList
template
SeqList:: SeqList(T a[ ], int n){
if(n>MaxSize)throw “參數(shù)非法”;for(i=0;i data[i]=a[i]; length=n; } C++繼承中構(gòu)造函數(shù)、析構(gòu)函數(shù)調(diào)用順序及虛函數(shù)的動(dòng)態(tài)綁定 昨天面試被問(wèn)到這些,慚愧的很,居然搞混了,悔恨了一把。決定要徹底搞清楚。也算是有所收獲。 首先說(shuō)說(shuō)構(gòu)造函數(shù),大家都知道構(gòu)造函數(shù)里就可以調(diào)用成員變量,而繼承中子類是把基類的成員變成自己的成員,那么也就是說(shuō)子類在構(gòu)造函數(shù)里就可以調(diào)用基類的成員了,這就說(shuō)明創(chuàng)建子類的時(shí)候必須先調(diào)用基類的構(gòu)造函數(shù),只有這樣子類才能在構(gòu)造函數(shù)里使用基類的成員,所以是創(chuàng)建子類時(shí)先調(diào)用基類的構(gòu)造函數(shù)然后再調(diào)用自己的構(gòu)造函數(shù)。通俗點(diǎn)說(shuō),你要用某些物品,但這些物品你沒(méi)辦法自己生產(chǎn),自然就要等別人生產(chǎn)出來(lái),你才能拿來(lái)用。 接著就是析構(gòu)函數(shù)了,上面說(shuō)到子類是將基類的成員變成自己的成員,那么基類就會(huì)只存在子類中直到子類調(diào)用析構(gòu)函數(shù)后。做個(gè)假設(shè):假如在基類的析構(gòu)函數(shù)調(diào)用比子類的先,這樣會(huì)發(fā)生什么事呢?類成員終止了,而類本身卻還在,但是在類存在的情況下,類成員就應(yīng)該還存在的,這不就產(chǎn)生矛盾了嗎?所以子類是調(diào)用自身的析構(gòu)函數(shù)再調(diào)用基類的析構(gòu)函數(shù)。 現(xiàn)在到了虛函數(shù)了,virtual主要作用是在多態(tài)方面,而C++的多態(tài)最主要的是類的動(dòng)態(tài)綁定,動(dòng)態(tài)綁定則是指將子類的指針或引用轉(zhuǎn)換成基類對(duì)象,基類對(duì)象就可以動(dòng)態(tài)判斷調(diào)用哪個(gè)子類成員函數(shù)。這就說(shuō)明在沒(méi)有子類指針或引用轉(zhuǎn)換為基類對(duì)象的話,virtual沒(méi)有存在意義(純虛函數(shù)除外),也就是有沒(méi)有virtual都是調(diào)用其自身的成員函數(shù)。通過(guò)這些分析,對(duì)于virtual就有了眉目了。當(dāng)子類指針或引用轉(zhuǎn)換為基類時(shí),若基類中有用virtual定義的函數(shù),被子類重寫(xiě)后,此基類對(duì)象就會(huì)根據(jù)子類調(diào)用子類中的重寫(xiě)后的函數(shù),而不是基類中的函數(shù);反之,若是基類中沒(méi)有用virtual定義,則不管基類被賦值的是哪個(gè)子類的值,調(diào)用的都是基類的成員函數(shù)(當(dāng)然指的是子類重載的基類函數(shù),不然就算要調(diào)用子類特有的成員函數(shù)也會(huì)編譯不過(guò))。 構(gòu)造函數(shù) 1.設(shè) f(x),g(x)分別為定義在R上的奇函數(shù)和偶函數(shù),當(dāng)x?0時(shí),f?(x)g(x)?f(x)g?(x)?0,且g(?3)?0,則不等式f(x)g(x)?0的解集為_(kāi)_____.2.設(shè)f(x)是定義在R上的奇函數(shù),且f(2)?0,當(dāng)x?0時(shí),有x? f?(x)?f(x)?0 恒成立,則不等式x2f(x)?0的解集為_(kāi)_________.3.已知函數(shù)f(x)是定義在R上的奇函數(shù),且當(dāng)x?(??,0)時(shí),有x?<0成立,若a?30.3? b f?(x)+f(x)1 3f(3 0.3),b??log?3?? f(log ? 3),c?(log 9)?f(log 9),則a、、c的大小關(guān)系為_(kāi)_________.f(x),則當(dāng)a?0 4.已知可導(dǎo)函數(shù)f(x)滿足f?(x)?系為_(kāi)_________.時(shí),f(a)與ea? f(0)的大小關(guān) 5.若函數(shù)f(x)對(duì)任意的x?R都有f?(x)? A.3f(ln2)?2f(ln3) f(x) 成立,則__________.B.3f(ln2)?2f(ln3) C.3f(ln2)?2f(ln3)D.3f(ln2)與2f(ln3)的大小關(guān)系不確定 6.設(shè)f(x)是R上的奇函數(shù),且f(?1)?0,當(dāng)x?0時(shí),(x2 ?1)?f?(x)?2x?f(x)?0,則不等式f(x)?0的解集為_(kāi)_________.7.已知函數(shù)f(x)是定義在(0,??)的非負(fù)可導(dǎo)函數(shù),且滿足x?對(duì)任意正數(shù)a、b,若a f?(x)+f(x)?0,B.af(b)?bf(a)C.af(a)?f(b) D.bf(b)?f(a),8.已知f(x)與g(x)都是定義在R上的函數(shù),g(x)?0,f?(x)g(x)? f(x)?a?g(x),x f(x)g?(x)?0 f(1)g(1) ? f(?1)g(?1) ? .在有窮數(shù)列? ?f(n)? ?(n?1,2,?,10)中,前kg(n)?? 項(xiàng)和 為 1516,則k=__________. template ALGraph::ALGraph(T a[ ], int n, int e){ vertexNum=n;arcNum=e; for(i=0;i adjlist[i].vertex=a[i]; adjlist[i].firstedge=NULL;} for(k=0;k cin>>i>>j;//輸入邊所依附的兩個(gè)頂點(diǎn)的序號(hào)s=new ArcNode;s->adjvex=j;//生成一個(gè)邊表結(jié)點(diǎn)ss->next=adjlist[i].firstedge;//將結(jié)點(diǎn)s插入到結(jié)點(diǎn)i的邊表的表頭 adjlist[i].firstedge=s; } } 函數(shù)與方程數(shù)學(xué)思想方法是新課標(biāo)要求的一種重要的數(shù)學(xué)思想方法,構(gòu)造函數(shù)法便是其中的一種。 高等數(shù)學(xué)中兩個(gè)重要極限 1.limsinx?1 x?0x 11x2.lim(1?)?e(變形lim(1?x)x?e)x?0x??x 由以上兩個(gè)極限不難得出,當(dāng)x?0時(shí) 1.sinx?x,2.ln(1?x)?x(當(dāng)n?N時(shí),(1?)n?e?(1?)n?1). 下面用構(gòu)造函數(shù)法給出兩個(gè)結(jié)論的證明. (1)構(gòu)造函數(shù)f(x)?x?sinx,則f?(x)?1?cosx?0,所以函數(shù)f(x)在(0,??)上單調(diào)遞增,f(x)?f(0)?0.所以x?sinx?0,即sinx?x. (2)構(gòu)造函數(shù)f(x)?x?ln(1?x),則f?(x)?1??1n1n1x??0.所以函數(shù)f(x)在1?x1?x (0,??)上單調(diào)遞增,f(x)?f(0)?0,所以x?ln(1?x),即ln(1?x)?x. ?1?要證?1???n?事實(shí)上:設(shè)1?n?11?1??e,兩邊取對(duì)數(shù),即證ln?1???, nn?1??11?t,則n?(t?1), nt?1 1因此得不等式lnt?1?(t?1)t 1構(gòu)造函數(shù)g(t)?lnt??1(t?1),下面證明g(t)在(1,??)上恒大于0. t 11g?(t)??2?0, tt ∴g(t)在(1,??)上單調(diào)遞增,g(t)?g(1)?0, 即lnt?1?, 1 t 1?1??1?∴ ln?1???,∴?1???n??n?n?1n?1?e,以上兩個(gè)重要結(jié)論在高考中解答與導(dǎo)數(shù)有關(guān)的命題有著廣泛的應(yīng)用.第二篇:構(gòu)造函數(shù)-析構(gòu)函數(shù)的調(diào)用順序
第三篇:構(gòu)造函數(shù)
第四篇:鄰接表構(gòu)造函數(shù)算法ALGraph
第五篇:構(gòu)造函數(shù)法