Time of Update: 2017-01-19
本文執行個體講述了C++中重載、重寫(覆蓋)和隱藏的區別,對於C++物件導向程式設計來說是非常重要的概念。具體分析如下:1.重載:重載從overload翻譯過來,是指同一可訪問區內被聲明的幾個具有不同參數列(參數的類型,個數,順序不同)的同名函數,根據參數列表確定調用哪個函數,重載不關心函數傳回型別。範例程式碼如下:class A{public: void test(int i); void test(double i); void test(int i, double j);
Time of Update: 2017-01-19
本文執行個體講解了C++中基類和衍生類別之間的轉換。對於深入理解C++物件導向程式設計有一定的協助作用。此處需要注意:本文執行個體講解內容的前提是衍生類別繼承基類的方式是公有繼承,關鍵字public。具體分析如下:以下程式為講解樣本:#include<iostream>using namespace std;class A{public: A(int m1, int n1):m(m1), n(n1){} void display();private: int m; int
Time of Update: 2017-01-19
static和const是C++程式設計中非常重要的概念,本文執行個體列舉了C++類中的static和const的規則和用法。供大家參考借鑒。具體說明如下:首先以代碼用來舉例說明。範例程式碼如下:class A{public: A():m(10) //const成員必須在建構函式的初始化構造列表中初始化 { q = 40; } void fun1()const { m++; //錯誤。const成員是常量,不能改變其值。 n++;
Time of Update: 2017-01-19
本文較為詳細的分析了關於理解C++指標數組,數組指標,數組名,二維數組的一些技巧。是比較重要的概念,相信對於大家的C++程式設計有一定的協助作用。一、關於數組名假設有數組:int a[3] = {1, 2, 3}1.數組名代表數組第一個元素的地址,注意,不是數組地址(雖然值相等),是數組第一個元素地址,a 等同於 &a[0];a+1是第二個元素的地址。比第一個元素地址a(或者&a[0])超出了一個整型指標的大小,在這裡是4個位元組(byte)cout << a <<
Time of Update: 2017-01-19
單鏈表的逆序輸出分為兩種情況,一種是只逆序輸出,實際上不逆序;另一種是把鏈表逆序。本文就分別執行個體講述一下兩種方法。具體如下:1.逆序輸出執行個體代碼如下:#include<iostream>#include<stack>#include<assert.h>using namespace std;typedef struct node{ int data; node * next;}node;//尾部添加node * add(int n, node *
Time of Update: 2017-01-19
字串匹配是電腦的基本任務之一。舉例來說,有一個字串"BBC ABCDAB ABCDABCDABDE",我想知道,裡面是否包含另一個字串"ABCDABD"?下面的的KMP演算法的解釋步驟1.首先,字串"BBC ABCDAB
Time of Update: 2017-01-19
相對於Java而言,友元是C++中特有的一種元素,很多教材上對其介紹的相對較少,因此初學的時候往往不能很快掌握,本文總結了友元的用法和一些注意的地方,供大家參考借鑒。希望能對初學C++的朋友起到一點協助作用。操作步驟:1)在MyFriend類中,將Father類定義成友元2)寫一個Son類繼承自Father類3)在Father類和Son類的建構函式中分別建立MyFriend對象,並定義其內部的三個變數4)在MyFriend類的建構函式中建立Father對象,並定義其內部的三個變數結果及注意事項:
Time of Update: 2017-01-19
查了一下發現同C語言的檔案操作函數便可以很容易的實現這樣的功能。在自己實現的函數中使用到的函數就只有fseek和ftell。它們的說明如下:fseek文法:#include <stdio.h> int fseek( FILE *stream, long offset, int origin );函數fseek()為給出的流設定位置資料.
Time of Update: 2017-01-19
本文執行個體展示了C++中的vector用法,分享給大家供大家參考。具體如下:一、概述vector是C++標準模板庫中的部分內容,它是一個多功能的,能夠操作多種資料結構和演算法的模板類和函數庫。vector是一個容器,它能夠存放各種類型的對象,簡單地說,vector是一個能夠存放任意類型的動態數組,可以動態改變大小。例如:// c語言風格int myHouse[100] ;// 採用vectorvector<int>
Time of Update: 2017-01-19
本文執行個體展示了C++與C#互調dll的實現步驟,在進行大型項目共用dll動態連結程式庫中可以用到。具體方法如下:一、C#調用C++ dll步驟(只能匯出方法):1. c++建立空項目->源檔案檔案夾中添加cpp檔案和函數2. c++屬性設定中,配置類型設定為動態庫dll,Common Language Runtime 支援改為/clr3. c#引用c++的dll4. c#聲明c++的方法,並添加 DllImport特性5. c#工程屬性設定為:目標平台x866. 注意方法的類型匹配7.
Time of Update: 2017-01-19
當編譯器發現程式中某個地方有疑問,可能有問題時就會給出一個警告資訊。警告資訊可能意味著程式中隱含的大錯誤,也可能確實沒有問題。對於警告的正確處理方式應該是:儘可能地消除之。對於編譯器給出的每個警告都應該仔細分析,看看是否真的有問題。只有那些確實無問題的警告才能放下不管。說明:由於編譯的警告各種各樣,根本不可以一一羅列出來,下面只是列舉出比較典型的一些警告,還有一些警告,大家只要根據字面意思,就可以很快的尋找出來,並解決之。類型1:顯示:warning: implicit declaration
Time of Update: 2017-01-19
本文詳細敘述了C/C++的位操作,這是C/C++程式設計中非常重要的概念。本文執行個體對於C/C++初學者來說也具有很好的複習與參考價值。具體分析如下:C/C++對位操作有如下方法:一、位操作運算子(注意:下面幾個運算子不改變原來的變數的值,只是獲得運算的結果即一個新值)按位取反:~位與:&位或:|位異或:^左移位元運算符:<<將一個運算對象的各二進位位全部左移若干位(左邊的二進位位丟棄,右邊補0)。若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。右移位元運算符:>
Time of Update: 2017-01-19
本文總結了C++輸入輸出的各種注意事項,對於C++初學者或C++程式員來說都有一定的借鑒參考價值。具體總結分析如下:一、string類:1.cin>>string時,遇到'\n'或者空格即停止,並且'\n'或空格仍留在輸入裡,即唯讀了一個單詞或什麼都沒讀,但string類自己處理好了Null
Time of Update: 2017-01-19
本文通過一個執行個體展示了C++實現鏈表倒序的方法,對於C++資料結構的學習有很好的參考借鑒價值。具體方法如下:首先,C++鏈表倒序的痛點在於如何一個個地修改。雖然不是數組,但是大概思想是一樣的,所以可以用一個for循序,一個遊標對應for迴圈裡面的 i,只不過要記得前一個節點和後一個節點,尤其是後一個,因為修改之後就訪問不到後面的,所以要記錄。for每一個迴圈只改變所指向的那個節點的指標,這樣既不會亂套了。用一個for迴圈就非常好理解了,執行個體代碼如下所示:#include
Time of Update: 2017-01-19
本文執行個體展示了C++實現不能被繼承的類的方法,對於C++初學者而言有一定的學習借鑒價值。具體實現方法如下:方法一:#include <iostream>using namespace std;class A{public: static A* getInstance(); static void deleteInstance(A* pA);private: A() { cout << "construct A\n";} ~A() { cout <<
Time of Update: 2017-01-19
c++中有個類叫做fstream,可以實現開啟一個檔案作為流。建立一個對象,然後調用該對象的open函數,其主要有兩個參數,第一個參數是字串,表示檔案的地址,第二個參數是代開方式,如:fstream fin("a.txt",ios::in);if(fin){ cout<<"opened"<<endl; fin.close();}else{ cout<<"not
Time of Update: 2017-01-19
本文以執行個體分析了C++語言中關於[]靜態數組和new分配的動態數組的區別,可以協助大家加深對C++語言數組的理解。具體區別如下:一、對靜態數組名進行sizeof運算時,結果是整個數組佔用空間的大小;因此可以用sizeof(數組名)/sizeof(*數組名)來擷取數組的長度。int a[5]; 則sizeof(a)=20,sizeof(*a)=4.因為整個數組共佔20位元組,首個元素(int型)佔4位元組。int *a=new
Time of Update: 2017-01-19
C++中所謂數組引用,即指向數組的引用;如:int a[10] ; int (&b)[10] = a ;如果寫成:int a[10] ;int* &b = a ;系統將會報錯: cannot convert from 'int [10]' to 'int
Time of Update: 2017-01-19
學過C/C++的人都知道,在C/C++中並沒有提供直接擷取數組長度的函數,對於存放字串的字元數組提供了一個strlen函數擷取其長度,那麼對於其他類型的數組如何擷取他們的長度呢?其中一種方法是使用sizeof(array) / sizeof(array[0]), 在C語言中習慣上在使用時都把它定義成一個宏,比如:#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));}
Time of Update: 2017-01-19
C++的函數指標(function pointer)是通過指向函數的指標間接調用函數。相信很多人對指向一般函數的函數指標使用的比較多,而對指向類成員函數的函數指標則比較陌生。本文即對C++普通函數指標與成員函數指標進行執行個體解析。一、普通函數指標通常我們所說的函數指標指的是指向一般普通函數的指標。和其他指標一樣,函數指標指向某種特定類型,所有被同一指標運用的函數必須具有相同的形參類型和傳回型別。int (*pf)(int, int); // 聲明函數指標這裡,pf指向的函數類型是int