#include using namespace std;
int *func()
int main()
//引用:給變數起別名 ,因此對別名的值(原名的值)修改就是對原名的值(別名的值)修改
#include using namespace std;
int main()
//引用的本質:指標常量( * const )
//注:如果某個位置已經有了預設引數,那麼從這個位置往後,從左到右都必須有預設引數
int func(int a,int b = 20,int c = 30)
void func(int a,int)
int main()
函式過載滿足條件:
訪問許可權:
#include using namespace std;
#define pi 3.14
//class預設許可權是private
class circle
};int main()
class person
//有參建構函式
person(int a)
//拷貝建構函式
person (const person& p)
//析構函式進行清理的操作
~person()
int age;
};int main()
如果屬性有在堆區開闢的,一定要提供拷貝建構函式,防止淺拷貝帶來的問題
#include using namespace std;
class person
//有參建構函式
person(int age,int height)
//拷貝建構函式
person (const person& p)
//析構函式進行清理的操作
~person()
cout << "person析構函式的呼叫" << endl;
}int m_age;
//有智指標,則要在堆區開闢
int *m_height;
};int main()
class person
//在常函式中不可修改
int m_a;
//在常函式中可以修改
mutable int m_b;
};//常物件,只能呼叫常函式
const person p1;
//報錯p1.m_a = 100;
p1.m_b = 100;
全域性函式做友元#include using namespace std;
class building
string m_sittingroom;
private:
string m_bedroom;
};void goodgay(building *building)
void test01()
int main()
類做友元#include using namespace std;
class building
string m_sittingroom;
private:
string m_bedroom;
};class goodgay
void visit()
building *building;
};int main()
成員函式做友元#include using namespace std;
class building
string m_sittingroom;
private:
string m_bedroom;
};class goodgay
//類外實現成員函式,注:仍然要在類內宣告;
void visit();
building *building;
};void goodgay::visit()
int main()
#include using namespace std;
class person
person(int a,int b)
//成員函式過載+號
person operator +(person& p1)
int m_a;
int m_b;
};//全域性函式過載+號
person operator +(person& p1,person& p2)
int main()
語法:
class 子類(派生類) : 繼承方式 父類(基類);
//公共繼承
class son1: public base
};//保護繼承
class son2: protected base
};//私有繼承
class son3: private base
};int main()
#include using namespace std;
class animal
};class cat:public animal
};class dog:public animal
};//父類指標或引用指向子類物件
void dospeak(animal &animal)
int main()
#include using namespace std;
//利用多型實現計算器
//抽象類
class abstractcalculator;
//加法類
class addcalculator:public abstractcalculator
};//乘法類
class mulcalculator:public abstractcalculator
};//父類的指標指向子類物件
void calculate(abstractcalculator* abstractcalculator)
int main()
//利用虛析構可以解決 父類指標釋放子類物件時不乾淨的問題
ofstream:寫操作
ifstream:讀操作
fstream:讀寫操作
//輸入輸出流
#include //檔案流
#include using namespace std;
#include int main()
//讀資料
//第一種方式
char buf[1024] = ;
while(ifs >> buf)
//第二種方式
string buf1;
while(getline(ifs,buf1))
//第三種方式,效率低
char c;
while ((c = ifs.get() != eof))
}
C 核心程式設計
1 程式的記憶體模型 記憶體四區 int func 形參也會放到棧區 intmain int func void func01 delete arr 釋放堆中的陣列的記憶體。引發異常 列印陣列的值 for int i 0 i 10 i intmain 2 c 中的引用 引用的作用就是給變數起乙個別名...
c 核心程式設計
四區 區 存放二進位制置零 全域性區 存放全域性變數和靜態變數以及常量 棧區 存放區域性變數以及參量,由編譯器自動釋放 堆區 由程式設計師釋放,或者作業系統收回 程式執行前 區 共享,可讀 全域性區new 資料型別 記得釋放記憶體 在堆區建立整型資料 new 返回的是該資料型別的指標 引用 給變數起...
C 核心程式設計(1)
學習資料 於 黑馬程式設計師.主要針對c 中的物件導向程式設計技術。1 記憶體分割槽模型 記憶體大方向劃分為4個區域 區 用於存放二進位制 有作業系統進行管理 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數等 堆區 有程式設計師分配和釋放,若程式...