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

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:C++ 類(lèi)和對(duì)象

柚子快報(bào)邀請(qǐng)碼778899分享:C++ 類(lèi)和對(duì)象

http://yzkb.51969.com/

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

1.1?面向過(guò)程編程:

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

例子:制作一杯咖啡

煮水。把咖啡粉放入濾紙。將熱水倒在咖啡粉上。等待咖啡滴入杯子。加入糖和牛奶(如果需要)。攪拌均勻。咖啡做好了。

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

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

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

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

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

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

1.3 總結(jié)

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

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

二 類(lèi)

2.1 類(lèi)的引入:

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

C:

typedef struct Stack

{

STDataType* a;

int top;

int capacity;

}ST;

void Init(int month , int year)

{

……

}

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

2.2 C++的定義:

class className// 類(lèi)名

{

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

}; // 一定要注意后面的分號(hào)

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è)類(lèi),但你們是不是發(fā)現(xiàn)了一個(gè)問(wèn)題,我想給變量賦值時(shí)怎么參數(shù)名和變量名一模一樣,這是什么鬼?其實(shí)這是為了代碼的可讀性和一致性并且我們一般在變量前面加"_"

輸出:

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

那什么是private?public呢?它就是我們接下來(lái)要講的類(lèi)的訪問(wèn)限定符及封裝

三 類(lèi)的訪問(wèn)限定符及封裝

3.1 類(lèi)的訪問(wèn)限定符:

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

性的將其接口提供給外部的用戶(hù)使用

?public:

當(dāng)你希望某個(gè)類(lèi)、屬性或方法對(duì)所有其他代碼可見(jiàn)時(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è)屬性或方法只在類(lèi)內(nèi)部使用,外部無(wú)法直接訪問(wèn)時(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 類(lèi)的實(shí)例

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

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

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

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

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

return 0;

}

輸出:

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

?protected:

當(dāng)你希望某個(gè)屬性或方法在同包內(nèi)或者子類(lèi)中可見(jiàn),但不希望它被外部類(lèi)訪問(wèn)時(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 類(lèi)的實(shí)例

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

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

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

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

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

return 0;

}

輸出:

訪問(wèn)限定符說(shuō)明:

1. public修飾的成員在類(lèi)外可以直接被訪問(wèn)

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

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

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

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

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

3.2 封裝:

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

四 類(lèi)的實(shí)例化:

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

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

return 0;

}

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

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

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

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

柚子快報(bào)邀請(qǐng)碼778899分享:C++ 類(lèi)和對(duì)象

http://yzkb.51969.com/

好文推薦

評(píng)論可見(jiàn),查看隱藏內(nèi)容

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

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

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

發(fā)布評(píng)論

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

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

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

文章目錄