欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請碼778899分享:C++ 類和對象

柚子快報(bào)邀請碼778899分享:C++ 類和對象

http://yzkb.51969.com/

一 面向?qū)ο蠛兔嫦蜻^程

1.1?面向過程編程:

面向過程編程是一種基于步驟和過程的編程方法,就像按照菜譜做飯一樣。你需要一步一步地描述每個(gè)具體的操作。

例子:制作一杯咖啡

煮水。把咖啡粉放入濾紙。將熱水倒在咖啡粉上。等待咖啡滴入杯子。加入糖和牛奶(如果需要)。攪拌均勻??Х茸龊昧恕?/p>

在這個(gè)例子中,每一步都是一個(gè)獨(dú)立的過程,程序按照順序一步一步地執(zhí)行這些過程,最終完成目標(biāo)。

1.2 面向?qū)ο缶幊蹋?/p>

面向?qū)ο缶幊淌且环N基于對象和類的編程方法,就像在一個(gè)咖啡店中制作咖啡一樣。每一個(gè)對象都有自己的屬性和行為,你可以通過這些對象來完成任務(wù)。

例子:咖啡店制作一杯咖啡

定義“咖啡機(jī)”對象:它可以煮水、過濾咖啡、加熱牛奶等。定義“咖啡杯”對象:它可以裝咖啡、加入糖和牛奶、攪拌等。創(chuàng)建一個(gè)“咖啡師”對象:他知道如何操作咖啡機(jī)和咖啡杯來制作咖啡。

在這個(gè)例子中,“咖啡機(jī)”、“咖啡杯”和“咖啡師”都是對象,每個(gè)對象都有特定的屬性(如咖啡機(jī)的水溫、咖啡杯的容量)和方法(如煮水、攪拌)。通過這些對象的交互,最終完成制作咖啡的任務(wù)。

1.3 總結(jié)

面向過程編程(POP):專注于過程和步驟,類似于按照菜譜做飯,每一步都是具體的指令。

面向?qū)ο缶幊蹋∣OP):專注于對象和交互,類似于咖啡店中的角色分工,每個(gè)對象都有自己的職責(zé),通過對象之間的協(xié)作來完成任務(wù)。

二 類

2.1 類的引入:

C語言的結(jié)構(gòu)體和C++的類有些許相似但是它里面只能定義變量,在C++的類中不僅可以定義變量而且還可以定義函數(shù)在里面

C:

typedef struct Stack

{

STDataType* a;

int top;

int capacity;

}ST;

void Init(int month , int year)

{

……

}

就比如這個(gè)用C語言寫的棧,它里面就只能寫變量名,函數(shù)其他的只能寫在結(jié)構(gòu)體外面然后我們再看用C++看它怎么寫,看之前先得了解C++的定義

2.2 C++的定義:

class className// 類名

{

// 類體:由成員函數(shù)和成員變量組成

}; // 一定要注意后面的分號

C++:

#define _CRT_SECURE_NO_WARNINGS 1

#include

#include

#include

using namespace std;

class Date

{

void Init(int month, int date)

{

date = date;

//_date = date;

}

int date;

int month;

//int _date;

//int _month;

};

int main()

{

Date myDate;

myDate.Init(2, 3);

return 0;

}

C++就把它們封裝成一個(gè)類,但你們是不是發(fā)現(xiàn)了一個(gè)問題,我想給變量賦值時(shí)怎么參數(shù)名和變量名一模一樣,這是什么鬼?其實(shí)這是為了代碼的可讀性和一致性并且我們一般在變量前面加"_"

輸出:

那為什么編譯之后會顯示找不到Init呢?我不是在類里面寫了init嘛,原因就是class默認(rèn)為private,struct為了兼容C才是public

那什么是private?public呢?它就是我們接下來要講的類的訪問限定符及封裝

三 類的訪問限定符及封裝

3.1 類的訪問限定符:

C++實(shí)現(xiàn)封裝的方式:用類將對象的屬性與方法結(jié)合在一塊,讓對象更加完善,通過訪問權(quán)限選擇

性的將其接口提供給外部的用戶使用

?public:

當(dāng)你希望某個(gè)類、屬性或方法對所有其他代碼可見時(shí)使用

例子:

#include

using namespace std;

class Date

{

public:

void Init(int month, int date)

{

_date = date;

_month = month;

}

void sprint()

{

cout << _date << endl;

cout << _month << endl;

}

int _date;

int _month;

};

int main()

{

Date myDate;

myDate.Init(2, 3);

myDate.sprint();

return 0;

}

輸出:

private:

當(dāng)你希望某個(gè)屬性或方法只在類內(nèi)部使用,外部無法直接訪問時(shí)使用

例子:

using namespace std;

#include

class Date

{

public:

// 初始化日期和月份的方法

void Init(int month, int date)

{

_month = month;

_date = date;

}

// 打印日期的方法

void Print() const

{

std::cout << "Date: " << _month << "/" << _date << std::endl;

}

private:

int _date; // 日期

int _month; // 月份

};

int main()

{

Date myDate; // 創(chuàng)建 Date 類的實(shí)例

myDate.Init(2, 3); // 初始化日期和月份

myDate.Print(); // 打印日期

// 嘗試直接訪問私有成員變量(將導(dǎo)致編譯錯(cuò)誤)

cout << myDate._date << std::endl;

cout << myDate._month << std::endl;

return 0;

}

輸出:

錯(cuò)誤表示你不能直接訪問私有成員變量,如果想訪問那只能私有轉(zhuǎn)成公有

?protected:

當(dāng)你希望某個(gè)屬性或方法在同包內(nèi)或者子類中可見,但不希望它被外部類訪問時(shí)使用。

class Date

{

public:

// 初始化日期和月份的方法

void Init(int month, int date)

{

_month = month;

_date = date;

}

// 打印日期的方法

void Print() const

{

std::cout << "Date: " << _month << "/" << _date << std::endl;

}

protected:

int _date; // 日期

int _month; // 月份

};

int main()

{

Date myDate; // 創(chuàng)建 Date 類的實(shí)例

myDate.Init(2, 3); // 初始化日期和月份

myDate.Print(); // 打印日期

// 嘗試直接訪問私有成員變量(將導(dǎo)致編譯錯(cuò)誤)

cout << myDate._date << std::endl;

cout << myDate._month << std::endl;

return 0;

}

輸出:

訪問限定符說明:

1. public修飾的成員在類外可以直接被訪問

2. protected和private修飾的成員在類外不能直接被訪問(此處protected和private是類似的)

3. 訪問權(quán)限作用域從該訪問限定符出現(xiàn)的位置開始直到下一個(gè)訪問限定符出現(xiàn)時(shí)為止

4. 如果后面沒有訪問限定符,作用域就到 } 即類結(jié)束。

最后讓我們用一個(gè)形象的例子來結(jié)束這一個(gè)知識點(diǎn)

有一個(gè)家庭,父母有一個(gè)私人的保險(xiǎn)箱(private),這個(gè)保險(xiǎn)箱只有父母自己可以打開。父母還有一個(gè)家族的相冊(protected),家族的相冊不僅僅父母可以看,子女也可以看,但家外的朋友是不允許看的。而有一個(gè)花園(public),任何人都可以進(jìn)入和觀看。

3.2 封裝:

封裝(Encapsulation)是面向?qū)ο缶幊讨械囊粋€(gè)重要概念,它指的是將數(shù)據(jù)(成員變量)和操作數(shù)據(jù)的方法(成員函數(shù)或方法)封裝在一個(gè)單元內(nèi)部,并保護(hù)對象不受外部直接訪問。這種機(jī)制使得對象內(nèi)部的細(xì)節(jié)對外部是隱藏的,只能通過定義的公共接口(公共方法)來訪問和操作數(shù)據(jù),從而實(shí)現(xiàn)了數(shù)據(jù)的安全性和代碼的模塊化。

四 類的實(shí)例化:

4.1 實(shí)例化的概念:

在C++中,類是一個(gè)模板,它定義了一組屬性和行為。但是,類本身并不占用內(nèi)存空間。只有當(dāng)我們用類創(chuàng)建對象時(shí),才會分配內(nèi)存。這種創(chuàng)建對象的過程就叫做“實(shí)例化”。

class Date

{

public:

// 初始化日期和月份的方法

void Init(int month, int date)

{

_month = month;

_date = date;

}

// 打印日期的方法

void Print() const

{

std::cout << "Date: " << _month << "/" << _date << std::endl;

}

private:

int _date; // 日期

int _month; // 月份

};

int main()

{

Date myDate; // 類的實(shí)例化

return 0;

}

當(dāng)你寫一個(gè)類時(shí),只是定義了一個(gè)模板或藍(lán)圖,描述了對象的屬性和行為。這不會占用內(nèi)存空間。

所以說 _date 和?_month都只是聲明并不是定義,但想要它有內(nèi)存空間就需要實(shí)例化對象

這個(gè)代碼就是實(shí)例化 Date 類的一個(gè)對象:myDate 而_date 和 _month是對象名。

當(dāng)你實(shí)例化一個(gè)類時(shí),你實(shí)際上是在創(chuàng)建這個(gè)類的對象。每個(gè)對象都有自己的成員變量的副本,并且可以獨(dú)立操作這些變量

柚子快報(bào)邀請碼778899分享:C++ 類和對象

http://yzkb.51969.com/

好文推薦

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19160023.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄