C 筆記 03物件導向1,2

2021-08-07 08:07:52 字數 2130 閱讀 4180

#if 1

#includeusing namespace std;

/*1.用函式指標呼叫和 用函式名呼叫函式的區別

函式的呼叫有標準的函式棧幀的開闢與回退

同夥函式指標呼叫函式的時候:: 1.在編譯階段不可能被處理成內聯函式

2.看起來累贅

???*/

/*面向過程

物件導向oop

物件導向語言的三大特徵 封裝 繼承 多型

封裝和隱藏

訪問限定符

public 公有的 **都可以訪問

proteced 保護的

private 私有的 除了類自己可以訪問,其他誰的都不能訪問

1.struct class 有什麼區別???

struct 成員預設是共有的

乙個空結構體占用零個位元組,

windows vc/vs 下建立c檔案試試 看看是否可以建立空結構體

linux gcc

class 成員預設是私有的

空的類 占用 乙個位元組

與c語言的呼叫約定不同

c語言函式使用的標準的c呼叫

c++用的是thiscall

??? thiscall???

*/struct node

;// this指標 -》 指向呼叫該成員方法的物件,不能用關鍵字定義變數名

/*c語言中 結構體 -》 產生的變數 -》分配記憶體

c++ 類-》 物件

1.分配記憶體

2.呼叫相應的建構函式 -> 構造完成之後 -> 物件存在了

若沒有提供任何的建構函式和析構函式,系統會為你產生預設的構造和預設的析構函式

若你提供了任意乙個建構函式,那麼系統就不會再產生預設的建構函式

//??? 提供了析構函式之後,系統還會預設提供嗎

系統產生的函式 有兩個特點 public和inline的

//自己定義的呢

*//*

系統(編譯器)呼叫建構函式,析構函式的點

建構函式: 在定義物件的時候呼叫的,記憶體的開闢和建構函式的呼叫是一起的

建構函式不能手動呼叫,是編譯器根據情況自己呼叫的

析構函式: return的時候析構 出} 之前,出}之後是進行函式棧幀的回退

析構函式可以隨意次數呼叫,在物件是存在的情況下。 與編譯器呼叫的析構不衝突,

但是,最好不要呼叫,資源釋放之後容易產生錯誤

***建構函式不是給物件分配記憶體,只是對物件的記憶體初始化

***析構函式不是釋放物件的記憶體,是在物件記憶體沒有之前 物件占用的其他資源釋放掉

先構造的後析構,後構造的先析構,和出入棧的方法是一樣的

作業: 用oop 寫順序棧和迴圈佇列

*/class cgoods

傳入乙個臨時物件,在這個函式退出的時候析構

*//*

*/cgoods good1;

cgoods good2("shanpin",10,4.5);

cgoods good3 = good2; //是初始化,不是賦值

/*拷貝構造的時候,系統會呼叫預設的拷貝建構函式,

//會將good2中的值放到good3中,但是good3的指標指向的也是good2的記憶體

//發生淺拷貝 若good2或者good3提前呼叫析構函式,那麼剩下的那個會成為野指標

//所以當物件呼叫了預設的拷貝建構函式會發生淺拷貝的時候應該自己寫拷貝建構函式,

//淺拷貝,,不完全拷貝,,,

當物件占用了除自己記憶體以外的其他系統資源拷貝構造會發生淺拷貝

*///

//賦值 沒有產生新物件 預設的賦值會發生淺拷貝 和記憶體洩露

// good1.operator=(good3); 物件任何的運算都相當於成員方法的呼叫,所以

// 物件等號的呼叫也相當於乙個函式的呼叫

// void operator = (cosnt cggoods &src);

= (good3);

// cgoods::operator = (&good1,good3);

good1 = good3;

return 0;

}#endif

/*int main()

*/

C 筆記 03物件導向3

20160803.cpp 定義控制台應用程式的入口點 01 41 37 include stdafx.h include using namespace std 建構函式的初始化列表 面向過程 程式 資料 演算法 物件導向 程式 物件 物件 訊息 在乙個程式裡物件所屬的類是不允許單獨存在的,組合 聚...

筆記12 物件導向

物件導向 q 小明同學讀 三國 a 找物件 什麼是物件?在客觀世界中可以描述的物品 看得見,摸得著 小明 是什麼?人 人類中的乙個物件 三國 是什麼?書 書籍類中的乙個物件 在計算機中如何能夠描述小明和三國 string name 小明 int age char 可以讀書的 string booln...

物件導向 03

類屬性和例項屬性的概念 類屬性是給類物件 類是乙個特殊的物件 中定義的屬性,通常用來記錄與這個類相關的特徵,類屬性不會用於記錄具體物件的特徵。類屬性的定義是在初始化方法之外的 例項物件的屬性叫做例項屬性,在初始化方法內部定義 類屬性和例項屬性的訪問 類屬性的訪問是類名.類屬性 例項屬性的訪問是例項物...