Time of Update: 2017-01-19
C++建構函式的預設參數和普通函數一樣,建構函式中參數的值既可以通過實參傳遞,也可以指定為某些預設值,即如果使用者不指定實參值,編譯系統就使形參取預設值。【例】#include <iostream>using namespace std;class Box{ public : Box(int h=10,int w=10,int len=10); //在聲明建構函式時指定預設參數 int volume( ); private : int height; int width;
Time of Update: 2017-01-19
C++建構函式當建立一個對象時,往往需要做一些初始化工作,例如對資料成員賦值等。為瞭解決這個問題,C++提供了建構函式。建構函式(Constructor)是一種特殊的成員函數,它的名字和類名相同,沒有傳回值,不需要使用者調用(使用者也不能調用),而是在建立對象時自動執行。建構函式的作用是在建立對象時進行初始化工作,最常見的就是對成員變數賦值。一個建構函式的例子:#include <iostream>using namespace std;class Student{private:
Time of Update: 2017-01-19
共用介面和私人實現的分離C++通過類來實現封裝性,把資料和與這些資料有關的操作封裝在一個類中,或者說,類的作用是把資料和演算法封裝在使用者聲明的抽象資料類型中。實際上使用者往往並不關心類的內部是如何?的,而只需知道調用哪個函數會得到什麼結果,能實現什麼功能即可。在聲明了一個類以後,使用者主要是通過調用公用的成員函數來實作類別提供的功能(例如對資料成員設定值,顯示資料成員的值,對資料進行加工等)。因此,公用成員函數是使用者使用類的公用介面(public interface),或者說是類的對外介面。
Time of Update: 2017-01-19
C++類的聲明和對象的建立類是建立對象的模板,一個類可以建立多個對象,每個對象都是類類型的一個變數;建立對象的過程也叫類的執行個體化。每個對象都是類的一個具體執行個體(Instance),擁有類的成員變數和成員函數。與結構體一樣,類只是一種複雜資料類型的聲明,不佔用記憶體空間。而對象是類這種資料類型的一個變數,佔用記憶體空間。類的聲明類是使用者自訂的類型,如果程式中要用到類,必須先進行聲明,或者使用已存在的類(別人寫好的類、標準庫中的類等),C++文法本身並不提供現成的類的名稱、結構和內容。一個
Time of Update: 2017-01-19
C++類的成員變數和成員函數類是一種資料類型,它類似於普通的資料類型,但是又有別於普通的資料類型。類這種資料類型是一個包含成員變數和成員函數的一個集合。類的成員變數和普通變數一樣,也有資料類型和名稱,佔用固定長度的記憶體空間。但是,在定義類的時候不能對成員變數賦值,因為類只是一種資料類型,本身不佔用記憶體空間,而變數的值則需要記憶體來儲存。類的成員函數也和普通函數一樣,都有傳回值和參數列表,它與一般函數的區別是:成員函數是一個類的成員,出現在類體中,它的作用範圍由類來決定;而普通函數是獨立的,作
Time of Update: 2017-01-19
物件導向的程式設計物件導向編程(Object Oriented Programming,OOP,物件導向程式設計)
Time of Update: 2017-01-19
C++枚舉類型如果一個變數只有幾種可能的值,可以定義為枚舉(enumeration)類型。所謂“枚舉”是指將變數的值一一列舉出來,變數的值只能在列舉出來的值的範圍內。聲明枚舉類型用enum開頭。例如: enum weekday{sun, mon, tue, wed, thu, fri, sat};上面聲明了一個枚舉類型weekday,花括弧中sun, mon, …,
Time of Update: 2017-01-19
C++動態分配記憶體(new)和撤銷記憶體(delete)在軟體開發過程中,常常需要動態地分配和撤銷記憶體空間,例如對動態鏈表中結點的插入與刪除。在C語言中是利用庫函數malloc和free來分配和撤銷記憶體空間的。C++提供了較簡便而功能較強的運算子new和delete來取代malloc和free函數。注意:
Time of Update: 2017-01-19
C++結構體數組一個結構體變數中可以存放一組資料(如一個學生的學號、姓名、成績等資料)。如果有10個學生的資料需要參加運算,顯然應該用數組,這就是結構體數組。結構體數組與以前介紹過的數值型數組的不同之處在於:每個數組元素都是一個結構體類型的資料,它們都分別包括各個成員項。定義結構體數組和定義結構體變數的方法相仿,定義結構體數組時只需聲明其為數組即可。如:struct Student //聲明結構體類型Student{ int num; char name[20]; char sex;
Time of Update: 2017-01-19
有了變數名,為什麼還需要一個別名呢?C++之所以增加參考型別, 主要是把它作為函數參數,以擴充函數傳遞資料的功能。到目前為止我們介紹過函數參數傳遞的兩種情況。1) 將變數名作為實參和形參這時傳給形參的是變數的值,傳遞是單向的。如果在執行函數期間形參的值發生變化,並不傳回給實參。因為在調用函數時,形參和實參不是同一個儲存單元。【例】要求將變數i和j的值互換。下面的程式無法實現此要求。#include <iostream>using namespace std;int main( ){
Time of Update: 2017-01-19
什麼是變數的引用對一個資料可以使用“引用(reference)”,這是C++對C的一個重要擴充,引用是一種新的變數類型,它的作用是為一個變數起一個別名。假如有一個變數a,想給它起一個別名b,可以這樣寫: int a; //定義a是整型變數 int &b=a; //聲明b是a的引用以上語句聲明了b是a的引用,即b是a的別名。經過這樣的聲明後,a或b的作用相同,都代表同一變數。注意:
Time of Update: 2017-01-19
C++有關指標的資料類型和指標運算的小結前面已用過一些指標運算(如p++,p+i等),現在把全部的指標運算列出如下。1) 指標變數加/減 一個整數例如:p++,p--,p+i,p-i,p+-i,p-=i等。C++規定,一個指標變數加/減一個整數是將該指標變數的原值(是一個地址)和它指向的變數所佔用的記憶體單元位元組數相加或相減。如p+i代表這樣的地址計算:p+i*d,d為p所指向的變數單元所佔用的位元組數。這樣才能保證p+i指向p下面的第i個元素。2)
Time of Update: 2017-01-19
C++字串與指標在C++中可以用3種方法訪問一個字串(在第5章介紹了前兩種方法)。用字元數組存放一個字串【例】定義一個字元數組並初始化,然後輸出其中的字串。#include <iostream>using namespace std;int main( ){ char str[]="I love CHINA!"; cout<<str<<endl; return 0;}運行時輸出:I love CHINA!用字串變數存放字串【例】定義一個字串變數並初始化,
Time of Update: 2017-01-19
用函數指標變數調用函數指標變數也可以指向一個函數。一個函數在編譯時間被分配給一個入口地址。這個函數入口地址就稱為函數的指標。可以用一個指標變數指向函數,然後通過該指標變數調用此函數。例 求a和b中的大者。先按一般方法寫程式:#include <iostream>using namespace std;int main(){ int max(int x,int y); //函式宣告 int a,b,m; cin>>a>>b; m=max(a,b); //
Time of Update: 2017-01-19
在C語言中,函數指標變數常見的用途之一是作為函數的參數,將函數名傳給其他函數的形參。這樣就可以在調用一個函數的過程中根據給定的不同實參調用不同的函數。例如,利用這種方法可以編寫一個求定積分的通用函數,用它分別求5個函數的定積分:可以看出,每次需要求定積分的函數是不一樣的。可以編寫一個求定積分的通用函數integral,它有3個形參: 下限a、上限b,以及指向函數的指標變數fun。函數原型可寫為: double integral (double a, double b, double
Time of Update: 2017-01-19
C++字串處理函數字串串連函數 strcat其函數原型為 strcat(char[],const char[]);strcat是string catenate(字串串連)的縮寫。該函數有兩個字元數組的參數,函數的作用是:將第二個字元數組中的字串串連到前面字元數組的字串的後面。第二個字元數組被指定為const,以保證該數組中的內容不會在函數調用期間修改。串連後的字串放在第一個字元數組中,函數調用後得到的函數值,就是第一個字元數組的地址。例如: char str1[30]=″People′s
Time of Update: 2017-01-19
C++字元數組的輸入輸出字元數組的輸入輸出可以有兩種方法:1) 逐個字元輸入輸出。2) 將整個字串一次輸入或輸出。例如有以下程式段: char str[20]; cin>>str; //用字元數組名輸入字串 cout<<str; //用字元數組名輸出字串在運行時輸入一個字串,如: China在記憶體中,數組str的狀態如圖5.9所示,在5個字元的後面自動加了一個結束符′\0′。輸出時,逐個輸出字元直到遇結束符′\0′,就停止輸出。輸出結果為:
Time of Update: 2017-01-19
C++字元數組用來存放字元資料的數組是字元數組,字元數組中的一個元素存放一個字元。字元數組具有數組的共同屬性。由於字串應用廣泛,C和C++專門為它提供了許多方便的用法和函數。字元數組的定義和初始化定義字元數組的方法與前面介紹的類似。例如: char c[10]; c[0]=′I′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′
Time of Update: 2017-01-19
C++一維數組定義一維數組定義一維數組的一般格式為: 類型標識符 數組名[常量運算式];例如: int a[10];它表示數組名為a,此數組為整型,有10個元素。關於一維數組的幾點說明:1) 數組名定名規則和變數名相同,遵循標識符定名規則。2) 用方括弧括起來的常量運算式表示下標值,如下面的寫法是合法的: int a[10]; int a[2*5]; int a[n*2]; //假設前面已定義了n為常變數3) 常量運算式的值表示元素的個數,
Time of Update: 2017-01-19
C++數組的概念概括地說:數組是有序資料的集合。要尋找一個數組中的某一個元素必須給出兩個要素,即數組名和下標。數組名和下標惟一地標識一個數組中的一個元素。數組是有類型屬性的。同一數組中的每一個元素都必須屬於同一資料類型。一個數組在記憶體中佔一片連續的儲存單元。如果有一個整型數組a,假設數組的起始地址為2000,則該數組在記憶體中的儲存情況如圖所示。引入數組就不需要在程式中定義大量的變數,大大減少程式中變數的數量,使程式精鍊,而且數組含義清楚,使用方便,明確地反映了資料間的聯絡。許多好的演算法都與