1、程式的記憶體模型(記憶體四區)
int
*func()
//形參也會放到棧區;
intmain()
int
*func()
void
func01()
delete
arr;
//釋放堆中的陣列的記憶體。引發異常
//列印陣列的值;
for(
int i =
0; i <
10; i++)}
intmain()
2、c++中的引用:引用的作用就是給變數起乙個別名;int
main()
//1、值傳遞,形參不會修飾實參
void
myswap
(int a,
int b)
//2、位址傳遞,形參可以修飾實參
void
myswap01
(int
* a,
int* b)
//3、引用傳遞,形參可以修飾實參
void
myswap02
(int
&a,int
&b)int
main()
//引用作為函式的返回值:
//1、不要返回區域性變數的引用。
int&
test()
//2、如果函式的返回值為乙個引用,函式的返回值可以作為左值;
int&
test01()
intmain()
//當系統發現乙個引用時,將其轉換為:int * const ref,乙個指標常量
void
test
(int
& ref)
//在函式的引數中使用引用常量可以防止誤操作
void
test
(const
int& ref)
intmain()
3、函式的高階應用//1、在函式某個位置已經有了預設引數,那麼從這個位置以後的引數(從左至右)都必須要有預設引數;
void
test
(int a,
int b=10,
int c=20)
//2、如果函式的宣告有預設引數,那麼函式的實現就不能有預設引數,宣告和實現只能有乙個有預設引數;
//第二個int為佔位引數
void
test
(int a,
int)
//函式過載的注意事項:
//1、引用作為形參可以作為函式過載的條件
void
test
(int
& a)
void
test
(const
int& a)
//2、當預設引數碰上函式的過載容易出現函式的二義性的錯誤,所以以後盡量避免,下面兩個函式就會出現二義性的問題;
void
test01
(int a,
int b=10)
void
test01
(int a)
intmain()
4、類和物件class
myclass
;struct mystruct
;int
main()
class
student
string getname()
void
setage
(int age)
_age = age;
}int
getage()
private
: string _name;
int _age;
};
5、類的分檔案編寫:將方法和字段放到乙個類的標頭檔案中,然後使用乙個包含這個標頭檔案的原始檔來實現方法;//分檔案編寫以前的類,可以分為乙個point類的標頭檔案和乙個具體實現的原始檔就可以;
//class point
////
// int getx()
// void sety(int y)
// int gety()
//private:
// int _x;
// int _y;
////};
#pragma once
//防止重複宣告;
#include
using
namespace std;
//標頭檔案的宣告
class
point
;
#include
"point.h";
void point::
setx
(int x)
int point::
getx()
void point::
sety
(int y)
int point::
gety()
6、建構函式和析構函式:建構函式用來初始化類,析構函式用在物件銷毀時,構造和析構都沒有返回值,而且不用寫void;class
test
//有參構造
test
(string name)
//拷貝構造,建構函式可以分為拷貝構造和普通構造;
test
(const test &t)
//析構函式,在類的銷毀時系統自動呼叫,如果沒有手動寫,將由系統自動生成,只不過實現為空
~test()
string getname()
private
: string _name;};
intmain()
7、深拷貝和淺拷貝:在這裡插入**片
c 核心程式設計
四區 區 存放二進位制置零 全域性區 存放全域性變數和靜態變數以及常量 棧區 存放區域性變數以及參量,由編譯器自動釋放 堆區 由程式設計師釋放,或者作業系統收回 程式執行前 區 共享,可讀 全域性區new 資料型別 記得釋放記憶體 在堆區建立整型資料 new 返回的是該資料型別的指標 引用 給變數起...
C 核心程式設計
include using namespace std int func int main 引用 給變數起別名 因此對別名的值 原名的值 修改就是對原名的值 別名的值 修改 include using namespace std int main 引用的本質 指標常量 const 注 如果某個位置已...
C 核心程式設計(1)
學習資料 於 黑馬程式設計師.主要針對c 中的物件導向程式設計技術。1 記憶體分割槽模型 記憶體大方向劃分為4個區域 區 用於存放二進位制 有作業系統進行管理 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數等 堆區 有程式設計師分配和釋放,若程式...