程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C,C++中的幾點注意

C,C++中的幾點注意

編輯:C++入門知識


C、C++數組初始化:

數組的概念:一組由同種類型元素順序排列而成的結構類型。

兩個特點:1,數組元素類型相同,2,各個元素放在連續內存區域內。

C、C++不提供數組越界檢測,有效數組訪問空間0-n-1。

數組初始化:

Int a[5] = {0}; 將全部元素初始化為0,而

Int b[5] = {1}; 僅僅將第一個元素初始化為1,而將其余n-1個元素初始化為0;

Int c[] = {1,2,3,4,5};自動使得數組長度為5.


C++模板類和類模板的區別:
[cpp]
template <class T> 
class A{ 
public: 
    A {}; 
    ~A{}; 
    void show() 
    { 
        cout<< n <<endl; 
    }; 
    void setN( T mn) 
    { 
        n = mn; 
    }; 
private: 
    T n; 
}  

template <class T>
class A{
public:
 A {};
 ~A{};
 void show()
 {
  cout<< n <<endl;
 };
 void setN( T mn)
 {
  n = mn;
 };
private:
 T n;
}

 

上面定義的是一個類模板,在編譯如下語句:

A<int>  a;

時,編譯器將用類模板生成模板類:

[cpp]
class A{ 
public: 
    A {}; 
    ~A{}; 
    void show() 
    { 
        cout<< n <<endl; 
    }; 
    void setN( int mn) 
    { 
        n = mn; 
    }; 
private: 
    int n; 
}  

class A{
public:
 A {};
 ~A{};
 void show()
 {
  cout<< n <<endl;
 };
 void setN( int mn)
 {
  n = mn;
 };
private:
 int n;
}


然後通過這個模板類來實例化對象a。

同樣模板函數和函數模板也是一樣的,編譯器實際上不會為函數模板或類模板生成任何代碼。

還有一點要明確的是,類模板是一個模板,即一個類屬,而模板類是一個類。類模板可以做函數的參數。

模板類,類模板,函數模板和模板函數的關系:

 

 

 


一個類模板在類層次結構中

 既可以是基類也可以是派生類:

 類模板可以從模板類派生

 類模板可以從非模板類派生

 模板類可以從類模板派生

 非模板類可以從類模板派生

 


運算符重載:

友員函數重載運算符常用於運算符的左右操作數類型不同的情況。

運算符函數可以重載為成員函數或友員函數。 其關鍵區別在於成員函數具有this 指針,而友員函數沒有,成員函數可以少傳遞一個參數對象。

不管是成員函數還是友員函數重載,運算符的使用方法相同。  但傳遞參數的方法不同,實現代碼不同,應用場合也不同。

最好應用友元函數的場合:

1.第一個參數為內部類型變量。

2.如果運算符的操作數(尤其是第一個操作數)希望有隱式轉換,則 必須用友員函數重載。

C++中不能用友元函數重載的運算符:

= ()【】->

單目運算符重載:

<函數類型> operator++();       //前綴運算符     ++<對象> 成員函數解釋為 <對象>.operator++(),友元函數解釋為 friend <對象>.operator++(A &a)

<函數類型> operator++(int);  //後綴運算符     <對象>++ 成員函數解釋為 <對象>.operator++(0),友元函數解釋為 friend <對象>.operator++(A &a, 0);

後綴運算符的重載為了和前綴運算區別增加了一個偽參數。

 

 

C 格式化輸入輸出:

printf函數:

 

附加函數說明
 含義
 
l
 用於長整形數據的輸出,可以加在格式符:u,x,o,d,比如ld%表示以10進制的形式,輸出長整形數字
 
m(一個正整數)
 輸出最小數據的最小寬度,如果數據實際寬度超過m,則按實際寬度輸出,如果小於m,則左端補0或者空格,右對齊
 
.n(一個正整數)
 對於實數,表示輸出n位小數;對於字符串,表示截取的字符個數
 
-m(一個負整數)或者單獨一個-號
 輸出字符或者數字左對齊
 

 

scanf函數

附加格式說明
 說明
 
l
 用來輸入長整形數據(可用於%ld,%lo,%lx);用來輸入double類型數據(可以用%ld或者%le)
 
h
 用來輸入短整型數據(可以用於%hd,%ho,%hx)
 
字段寬度(一個正整數)
 用來指定輸入數據所占的寬度(列數)
 
*
 用來表示輸入項在輸入後不賦給相應變量
 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved