如何使C++數(shù)據(jù)類型定義編譯器
許多編程人員學(xué)習(xí)C++總結(jié)經(jīng)驗為,有的覺得C++語言是一門獨立的語言,并不是在C語言的基礎(chǔ)上,可以直接學(xué)習(xí)C++不必先從C下手,下面對C++數(shù)據(jù)類型分享一下,供大家相互學(xué)習(xí)交流。
C++是個強大的語言,可以用于做別的語言做不了的工作。但是,這種強大功能是有代價的。開始使用C++時,你可能會遇到內(nèi)存溢出和訪問失效等問題,使程序死機。這里用最簡短的篇幅介紹C++語言基礎(chǔ)。 C++數(shù)據(jù)類型本身有專著介紹,這種書還特別厚,所以別指望我能用三言兩語說清楚。讀者學(xué)完本書并使用C++ Builder一般時間之后,***對C++語言再作更深入的了解。
C++可以最充分地利用面向?qū)ο缶幊?OOP)的優(yōu)勢。OOP不只是一個新名詞,而有它的實際意義,可以生成可復(fù)用的對象。新術(shù)語 對象(object),和前面介紹的構(gòu)件一樣,是完成特定編程任務(wù)的軟件塊(構(gòu)件是對象,但對象不全是構(gòu)件,稍后會解釋這點)。
對象只向用戶(使用對象的編程人員)顯示必須的部分,從而簡化對象的使用。用戶不必知道的所有內(nèi)部機制都隱藏在幕后。這一切都包括在面向?qū)ο缶幊痰母拍钪小OP可以用模塊化方法進行編程,從而避免每次從頭開始。#t#
C++ Builder程序是面向OOP的,因為C++ Builder大量使用構(gòu)件。生成構(gòu)件后(你生成的或C++ Builder內(nèi)置的構(gòu)件),就可以在任何C++ Builder程序中重復(fù)使用。構(gòu)件還可以擴展,通過繼承生成具有新功能的新構(gòu)件。最妙的是,構(gòu)件隱藏了所有內(nèi)容細節(jié),使編程人員能集中精力充分利用構(gòu)件。
入門簡介
在C++之前先有C語言,C++是建立在C語言之上的,稱為“帶類的C語言”。這個C語言基礎(chǔ)在當今的C++程序中仍然很重要。C++并不是取代C,而是補充和支持C。本章余下部分和下幾章主要介紹C++中來源于C語言的部分。
實際上,這里介紹的是C語言,第2課"C++基礎(chǔ)"中才轉(zhuǎn)入C++。讀者不必關(guān)心哪個來自C,哪個來自C++,因為這些全在C++中。C++語言很難按順序介紹,因為我們要介紹的所有特性都是交叉的。
我準備的一次介紹一塊,然后拼湊起來。到第3課"高級C++"結(jié)束,你將對C++語言有個完整的了解。一下子沒有掌握某個概念也沒關(guān)系,有些概念必須經(jīng)過實踐才能完全了解。
變量
還是從變量講起來吧。變量(variable)實際上是賦予內(nèi)存地址的名稱。聲明變量后,就可以用它操作內(nèi)存中的數(shù)據(jù)。下面舉幾個例子進行說明。下列碼段用了兩個變量,每條語句末尾用說明語句描述執(zhí)行該語句時發(fā)生的情況:
- int x;// variable declared as an integer variable
- x = 100;// 'x' now contains the value 100
- x +=50;// 'x' now contains the value 150
- int y = 150;// 'y' declared and initialized to 150
- x += y;// 'x' now contains the value 300
- x++;// 'x' now contains the value 301
新術(shù)語 變量(variable)是留作存放某個數(shù)值的計算機內(nèi)存地址。注意x的值在變量操作時會改變,稍后會介紹操作變量的C++數(shù)據(jù)類型。警告 聲明而未初始化的變量包含隨機值。由于變量所指向的內(nèi)存還沒有初始化,所以不知道該內(nèi)存地址包含什么值。
- int k;
- int y;
- x=y+10; //oops!
本例中變量y沒有事先初始化,所以x可能取得任何值。例外的情況是全局變量和用static修飾聲明的變量總是初始化為0。而所有其它變量在初始化或賦值之前包含隨機值。變量名可以混合大寫、小寫字母和數(shù)字與下劃線(_),但不能包含空格和其它特殊字符。
變量名必須以字母或下劃線開始。一般來說,變量名以下劃線或雙下劃線開始不好。變量名允許的***長度隨編譯器的不同而不同。如果變量名保持在32個字符以下,則絕對安全。實際中,任何超過20個字符的變量名都是不實用的。
- int aVeryLongVariableName;// a long variable name
- int my_variable;// a variable with an underscore
- int_ x;// OK,but not advisedint X;// uppercase variable name
- int Labe12;// a variable name containing a number
- int GetItemsInContainer(); // thanks Pete!
說明C++數(shù)據(jù)類型中的變量名是考慮大小寫的,下列變量是不同的:int XPos;int xpos;如果你原先所用語言不考慮大小寫(如Pascal),則開始接觸考慮大小寫的語言可能不太適應(yīng)。