初級C++
1)C++和c區別:
C++面向對象,C面向過程。
C++函數例:hello.cpp
#include<iostream>//頭文件
using namespace std;//命名空間
int main()
{
cout << “Hello World” << endl;//輸出
return 0;
}
全局變量和局部變量
作用域運算符 : :
const限定符
復合類型
數組類
字符串char
string類(字符串)
這三個和c相同
結構體 class(類似于struct)
public:共有
private:私有的
protect:保護的
內存管理
指針:
創建空間new(malloc)
釋放空間delete(free)
引用:&
沒有自身空間,只是引用。引用時加const
函數
c++內聯函數
引用變量
默認參數
函數重載:
函數模板:模糊定義 define和typedef
高級C++
類繼承:
單繼承class Student:public Teacher
多繼承class C:public A : public B
訪問控制
虛繼承:是指一個指定的基類,在繼承體系結構中,將其成員數據實例共享給也從這個基類型直接或間接派生的其它類
虛函數:virtual
虛表:每個有虛函數的類或者虛繼承的子類,編譯器都會為它生成一個虛擬函數表(簡稱:虛表),表中的每一個元素
都指向一個虛函數的地址
虛表指針:如果一個類含有虛表,則該類的所有對象都會含有一個虛表指針,并且該虛表指針指向同一個虛表
多態:接口的多種不同的實現方式即為多態
純虛函數:在基類中不能對虛函數給出有意義的實現
成員容器
容器:vector,有序存入,下標訪問
鏈表:list,和C中鏈表相同
map:有序存入數據
迭代器:iterator;用來遍歷標準模板庫容器中的部分或全部元素
類和對象
類的構造函數:創建對象時初始化對象
析構函數:~Student(){},在退出時自動回收空間
this指針
類作用域
const/static:靜態變量和靜態全局變量
友元函數:friend,在public中定義,可訪問部分或全部private數據
符號重載:operator,
friend ostream& operator<< (ostream &out
, const Student &stu);
ostream& operator<< (ostream &out, const Student &stu)
{
out << stu.m_strName << ' ' << stu.m_fScore;
return out;
}
類的動態內存分配
拷貝構造函數:引用,會加上const限制,拷貝構造函數要調用基類的拷貝構造函數和成員函數
淺拷貝:只有類成員
深拷貝:還有地址
文件操作
讀: ifstream 默認讀的方式打開;ifs >> stu;;ios_base::in;ios_base::binary二進制寫
寫:ofstream默認寫、截斷(覆蓋)、文本的方式打開文件,ofs.open打開;ios_base::app追加
讀和寫:fstream:cout << file.tellp() << endl;顯示讀寫位置;
file.seekg(2*sizeof(Student),ios_base::cur);偏移兩個Student距離
關閉:ofs.close()