c 學習筆記(四) 類和結構

2022-09-18 09:15:25 字數 1097 閱讀 1718

類的預設訪問許可權是private

結構是public

該關鍵字修飾的變數可以在類的const方法中修改

class node

}

建議使用如下方式:

//正確

constref::constref(int ii): i(ii), ci(ii), ri(ii) {}

//錯誤

constref::constref(int ii)

原因:

效率不同,後者是先初始化再賦值,前者是直接初始化

如果ci、ri是引用或const變數,會報錯,因為這倆物件不能被賦值

c++11新特性

class a {};

a() : a(1){}; //委託給另乙個建構函式

}

使用方法:在建構函式宣告前面加上該關鍵字

功能:抑制建構函式的隱式轉換。加了之後,不能進行隱式轉換,且編輯器也不會在自動轉換過程中使用該函式

限制條件:支隊乙個實參的建構函式有效

class a
因為靜態資料成員不屬於類的任何乙個物件,所以它們並不是在建立類的物件時被定義的。

這意味著它們不是由類的建構函式初始化的。而且一般來說,我們不能在類的內部初始化靜態成員。

相反的,必須在類的外部定義和初始化每個靜態成員,且只能定義一次。

c++三法則:如果需要析構函式,則一定需要拷貝建構函式和拷貝賦值操作符。原因是如果需要析構函式,則代表類中有類似指標這樣無法自動釋放的資源,那麼為了防止淺拷貝,需要自己重新兩個拷貝函式。

c++五法則:在較新的 c++11 標準中,為了支援移動語義,又增加了移動建構函式和移動賦值運算子。與三之法則不同的是,不提供移動建構函式和移動賦值運算子通常不是錯誤,但會導致失去優化機會。

如果我們不想定義預設的一些函式(比如拷貝或賦值),就可以在宣告的時候,後面加上=delete,表示刪除的函式。

struct nocopy
比如iostream就不支援拷貝

注:析構函式不能刪除

《Inside C 》筆記 四 類

類是對資料結構和演算法的封裝。一 類成員 類成員包括以下幾類,作者在後面的章節會詳細講解。字段 用來儲存資料,可用static readonly const來修飾 方法 運算元據的 屬性 用來控制對類內部變數的訪問 常量 索引器 事件和運算子。二 訪問修飾符 public 可被外部的類和派生類訪問 ...

Kotlin筆記四,類和繼承

kotlin 中使用關鍵字 class 宣告類 class animal類宣告由類名 類頭 指定其型別引數 主建構函式等 以及由花括號包圍的類體構成。類頭與類體都是可選的 如果乙個類沒有類體,可以省略花括號。class animal在 kotlin 中的乙個類可以有乙個主建構函式以及乙個或多個次建構...

C 練習(四)類和物件

構建乙個類book,其中含有兩個私有資料成員qu和price,建立乙個有5個元素的陣列物件,將qu初始化1 5,將price初始化為qu的10倍。顯示每個物件的qu price。標頭檔案book.h includeusing namespace std class book book成員函式.cpp...