C 謎點大揭秘

2021-05-25 22:52:47 字數 594 閱讀 3641

1.引用宣告之謎:

code:

//program//  

#include

using

namespace std;   

int max(int &a,int &b)         

int main()      

上邊程式編譯能通過嗎?當然不行。為什麼?在函式呼叫max(i,5)中,由於5不是左值,不能為它建立引用,所以產生錯誤。

解決方案:修改max()的定義, 把其引數宣告為常引用:

int max(const int &a,const int &b);

心得體會:將函式的引數宣告為常引用, 不完全是因為引數的值在函式體內不能修改,還考慮到了接受非左值作為函式實參的情況。

2.類定義之謎

問題描述:為什麼類定義結束後,一定要在「}」後加「;」,否則編譯器會報錯。

問題解答:類在c++中被當做一種資料型別,而凡是直接跟在資料型別後面的識別符號,不是變數就是函式。這樣,類的定義結束後,如果不在其後加分號,就會將其後面的內容解釋成乙個變數或函式,從而導致錯誤。

C 集合型別大揭秘

listlist new list list.enumerator enumerator list.getenumerator try finally public class myset ienumerable public ienumerator getenumerator public cla...

A 演算法大揭秘

24 0xff color 000000 font size medium a 演算法大揭秘 原文 http www.gamedev.net reference articles article2003.asp 數碼電子書 a 原理講解 http www.gotoread.com s e vo 55...

再議SOA十大謎思

在joe mckendrick最近的文章 gartner 為什麼soa爭論雙方都有錯的十個理由 中,他提到了gartner的yefim natis在ebizq的 soa in action 活動上所作的網播主題演講中陳述的soa十大謎思。根據yefim的說法,soa的 狂熱者 與 懷疑者 都造就了s...