初級(jí)C++
1)C++和c區(qū)別:
C++面向?qū)ο螅珻面向過程卓研。
C++函數(shù)例:hello.cpp
#include<iostream>//頭文件
using namespace std;//命名空間
int main()
{
cout << “Hello World” << endl;//輸出
return 0;
}
全局變量和局部變量
作用域運(yùn)算符 : :
const限定符
復(fù)合類型
數(shù)組類
字符串char
string類(字符串)
這三個(gè)和c相同
結(jié)構(gòu)體 class(類似于struct)
public:共有
private:私有的
protect:保護(hù)的
內(nèi)存管理
指針:
創(chuàng)建空間new(malloc)
釋放空間delete(free)
引用:&
沒有自身空間,只是引用。引用時(shí)加const
函數(shù)
c++內(nèi)聯(lián)函數(shù)
引用變量
默認(rèn)參數(shù)
函數(shù)重載:
函數(shù)模板:模糊定義 define和typedef
高級(jí)C++
類繼承:
單繼承class Student:public Teacher
多繼承class C:public A : public B
訪問控制
虛繼承:是指一個(gè)指定的基類,在繼承體系結(jié)構(gòu)中咕娄,將其成員數(shù)據(jù)實(shí)例共享給也從這個(gè)基類型直接或間接派生的其它類
虛函數(shù):virtual
虛表:每個(gè)有虛函數(shù)的類或者虛繼承的子類扼菠,編譯器都會(huì)為它生成一個(gè)虛擬函數(shù)表(簡稱:虛表),表中的每一個(gè)元素
都指向一個(gè)虛函數(shù)的地址
虛表指針:如果一個(gè)類含有虛表左腔,則該類的所有對(duì)象都會(huì)含有一個(gè)虛表指針,并且該虛表指針指向同一個(gè)虛表
多態(tài):接口的多種不同的實(shí)現(xiàn)方式即為多態(tài)
純虛函數(shù):在基類中不能對(duì)虛函數(shù)給出有意義的實(shí)現(xiàn)
成員容器
容器:vector捅儒,有序存入液样,下標(biāo)訪問
鏈表:list振亮,和C中鏈表相同
map:有序存入數(shù)據(jù)
迭代器:iterator;用來遍歷標(biāo)準(zhǔn)模板庫容器中的部分或全部元素
類和對(duì)象
類的構(gòu)造函數(shù):創(chuàng)建對(duì)象時(shí)初始化對(duì)象
析構(gòu)函數(shù):~Student(){}鞭莽,在退出時(shí)自動(dòng)回收空間
this指針
類作用域
const/static:靜態(tài)變量和靜態(tài)全局變量
友元函數(shù):friend坊秸,在public中定義,可訪問部分或全部private數(shù)據(jù)
符號(hào)重載: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;
}
類的動(dòng)態(tài)內(nèi)存分配
拷貝構(gòu)造函數(shù):引用褒搔,會(huì)加上const限制,拷貝構(gòu)造函數(shù)要調(diào)用基類的拷貝構(gòu)造函數(shù)和成員函數(shù)
淺拷貝:只有類成員
深拷貝:還有地址
文件操作
讀: ifstream 默認(rèn)讀的方式打開丹拯;ifs >> stu;站超;ios_base::in;ios_base::binary二進(jìn)制寫
寫:ofstream默認(rèn)寫乖酬、截?cái)?覆蓋)死相、文本的方式打開文件,ofs.open打開咬像;ios_base::app追加
讀和寫:fstream:cout << file.tellp() << endl;顯示讀寫位置算撮;
file.seekg(2*sizeof(Student),ios_base::cur);偏移兩個(gè)Student距離
關(guān)閉:ofs.close()