類與物件(上篇)

2021-09-25 13:45:41 字數 1440 閱讀 2178

c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題。

c++是基於物件導向的,關注的是物件,將一件事情拆分成不同的物件,靠物件之間的互動完成。

c語言中,結構體中只能定義變數,在c++中,結構體內不僅可以定義變數,也可以定義函式。

#include #include using namespace std;

struct student

void printstudentinfo()

char _name[20];

char _gender[3];

int _age;

};int main()

上面結構體的定義,在c++中更喜歡用class來代替

class classname

; // 一定要注意後面的分號

class為定義類的關鍵字,classname為類的名字,{}中為類的主體,注意類定義結束時後面分號。

類中的元素稱為類的成員:類中的資料稱為類的屬性或者成員變數; 類中的函式稱為類的方法或者成員函式。

類的兩種定義方式:

1. 宣告和定義全部放在類體中,需要注意:成員函式如果在類中定義,編譯器可能會將其當成內聯函式處理。

//人

class person

;#include "person.h"

//顯示基本資訊,實現:輸出名字、性別、年齡

void person::showinfo()

;// 這裡需要指定printpersoninfo是屬於person這個類域

void person::printpersoninfo()

private:

int _a;

};// 類中僅有成員函式

class a2

};// 類中什麼都沒有---空類

class a3

{};

結論:乙個類的大小,實際就是該類中」成員變數」之和,當然也要進行記憶體對齊,注意空類的大小,空模擬較特殊,編譯器給了空類乙個位元組來唯一標識這個類。

結構體內存對齊規則

1. 第乙個成員在與結構體偏移量為0的位址處。

2. 其他成員變數要對齊到某個數字(對齊數)的整數倍的位址處。

注意:對齊數 = 編譯器預設的乙個對齊數 與 該成員大小的較小值。

vs中預設的對齊數為8,gcc中的對齊數為4

3. 結構體總大小為:最大對齊數(所有變數型別最大者與預設對齊引數取最小)的整數倍。

4. 如果巢狀了結構體的情況,巢狀的結構體對齊到自己的最大對齊數的整數倍處,結構體的整體大小就是所有最大對齊數(含巢狀結構體的對齊數)的整數倍。

this指標的引出

定義乙個日期類date

class date

C 類與物件(上篇 基礎知識講解)

c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題。例如 如何將大象裝進冰箱?第一步 開啟冰箱 第二步 把大象塞進冰箱 第三步 關上冰箱 c 是基於物件導向的,關注的是物件,將一件事情拆分成不同的物件,靠物件之間的互動完成。例如 把車開走。抽象兩個物件 人和車。具體描述...

類與物件 物件

一 什麼是物件?1.物件是由我們自己建立的類來建立出來的。2.物件就是類的例項 可以真正使用類的資料,可以呼叫類中元素的資料 3.乙個類可以建立出多個物件 二 如何建立物件?1.保證用來建立物件的類是存在 2.需要通過類中提供的構造方法建立物件 格式 new 構造方法 引數值 三 建立好的物件的有何...

類與物件(類 物件 物件的比較)

類 是對某一事物的抽象描述,通過方法 成員方法 和屬性 成員變數 來描述事物。物件 物件 是實際存在的該類事物的個體,因而也稱例項。1 類與物件 建立圓類 1 package circle 23 public class circle 9public double getradius 1213 pu...