總概: { C:面向過程,以過程為中心,以演算法為驅動 } { C++:面向對象,以過對象中心,以消息為驅動 個人理解:一切皆對象的思想 } 一 前言總概 1、常量變數 初始化對象與賦值是兩個概念 直接初始化:int a(12);高效 複製初始化:int a = 12; 內置類型差別不大,類類型大 2 ...
總概:
{
C:面向過程,以過程為中心,以演算法為驅動
}
{
C++:面向對象,以過對象中心,以消息為驅動
個人理解:一切皆對象的思想
}
一 前言總概
1、常量變數
初始化對象與賦值是兩個概念
直接初始化:int a(12);高效
複製初始化:int a = 12;
內置類型差別不大,類類型大
2、變數作用域:全局,局部,語句作用域;(文件作用域)C++多出:類作用域,命名空間作用域
3、c++中struct和class唯一區別在於struct預設成員為public而class預設private
4、頭文件用來聲明和類型定義,const變數如果用常量表達式定義,頭文件中的同名const變數會被編譯器優化為字面值常量而不分配存儲空間;否則,最好用extern聲明。
5、問題:引用占用記憶體空間嗎?作為函數形參的工作原理?
二 標準庫類型之string類
string vector bitset三大類
1、string類
1.1 初始化string對象
string s(2,'C');其他方式和C++中內置類型一致
1.2 string對象的操作
1)empty size s[n]
2)關係操作符
> < == >= <=;
若兩個一長一短string對象作比較,前邊字元都匹配的話,則長string對象大於短string對象;
3)賦值操作符
4)加法操作符:即連接
+操作符左右操作數必須有一個為string類型對象;註意+操作符的結合性:左結合;
和字元串字面值的連接。
5)從string對象獲取字元
string S();char c = S[S.size() - 1];
下標操作可用作左值:S[n] = 'c';
下標n可計算,為unsigned型就可,但註意:越界未定義;
C++中:<cctype>頭文件的函數可用來測試string對象的單個字元的屬性。註意區分C標準庫:<ctype.h>