C 核心程式設計

2022-09-22 20:21:11 字數 3717 閱讀 9252

#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個區域 區 用於存放二進位制 有作業系統進行管理 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數等 堆區 有程式設計師分配和釋放,若程式...