C C 物件導向基礎知識面試易考點

2021-08-09 23:54:19 字數 1164 閱讀 5103

c++ 中struct 和class 都可以用來定義型別,兩者的區別是:如果沒有申明成員函式或成員變數的訪問許可權級別,在struct 中預設的許可權是public,而在class 中預設的許可權是private。

物件導向的三大特性:封裝、繼承、多型。

封裝是將抽象得到的行為或功能相結合,形成乙個整體,也就是「類」,其中資料和函式是類的成員;封裝的目的簡化和安全性,使用者不需要了解具體的實現細節,只需要通過外部介面,以特定的訪問許可權訪問即可。

繼承是子類可以使用父類的資料和方法,並且可以重寫新增資料或方法,或者過載父類已有方法。

多型性是允許你將父物件設定成為和乙個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作,也就是「上溯造型」 a a = new b()

類的初始化順序,先初始化靜態資料方法,然後再初始化成員變數方法,再執行建構函式內的語句;

空型別的sizeof 是1而不是0,因為在申明該型別的時候必須在記憶體中占用一定的空間,否則無法使用這些例項,一般vs 中佔1個位元組;在該型別中新增乙個建構函式和析構函式,還是只佔1個位元組空間,因為呼叫構造/析構函式時只需要知道函式的位址即可,而位址只與型別相關,與例項無關;如果把析構函式標記為虛函式,則會為該型別生成虛函式表,並在該型別的每乙個示例中新增乙個指向虛函式表的指標,32位系統指標 sizeof = 4,64位系統指標 sizeof = 8。

拷貝建構函式 a::a(const a& obj) 在建立物件時,是使用同一類中之前建立的物件來初始化新建立的物件

c++ 11 中引入 nullptr 專門用來表示空指標,避免混淆。以前是用 null, null是乙個巨集,它的值是0。

c++ 中陣列和指標是既有關聯又有區別的兩個概念。當申明乙個陣列時,其陣列名也是乙個指標,該指標指向陣列的第乙個元素,而當陣列作為函式的引數進行傳遞時,會自動退化為同型別的指標。

c/c++中字串以字元』\0』結尾,每個字串多乙個額外的字元開銷。

為了節省記憶體,c/c++ 把常量字串放到單獨的乙個記憶體區域。當指標賦值給相同的常量字串時,它們實際上是指向形同的記憶體位址;而用常量記憶體初始化陣列時,會初始化兩個位址不同的陣列,並把常量內容分別複製到陣列中。

c++ 中string 的內容是不能改變的,如果改變內容則會生成乙個新例項,當需要多次修改字串內容時,使用stringbuilder處理字串。下圖**中的str 並不會改變。

Python基礎知識 物件導向

物件導向英文單詞 object oriented 簡稱 o o 物件導向的學習 物件導向的語法學習 簡單,靠記憶就行,比較多 物件導向的思想學習 稍微有點難度,主要是前期不太適應 物件導向的優勢 能夠實現良好的程式結構,方便程式的開發和管理維護 效率 執行效率 計算機 物件導向效率不如過程化的快 開...

Java基礎知識 物件導向2

b 構造方法格式特點 b 構造方法注意事項 b 構造方法 構造方法 成員方法 b 給成員變數賦值 c 輸出成員變數值的方式 構造方法,get set 方法,以及乙個顯示所有成員資訊的方法。並測試。b 畫圖演示 舉例 d 可以通過類名呼叫 b 案例演示 b 靜態方法只能訪問靜態的成員變數和靜態的成員方...

python 基礎知識 物件導向 介紹

朋友 數量少!朋友越來越多,好朋友 普通朋友 一般朋友.朋友逐漸增加,閨蜜 知己 藍顏 紅顏.分類 人 認識世界 周圍的事情簡單 上小學,交作業 乙個乙個記憶 周圍的事情 複雜 上大學 貸款 做事情的步驟 周圍的事情 極度複雜 生活 進入社會 思考 三思而後行 還原過程 簡單的 操作 基礎語法,堆疊...