国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

西安免費做網(wǎng)站哪家好大連seo外包平臺

西安免費做網(wǎng)站哪家好,大連seo外包平臺,做肥料網(wǎng)站,黃石做網(wǎng)站要多少錢目錄 前言 封裝 封裝的意義 struct 和 class 的區(qū)別 成員屬性設(shè)置為私有 前言 眾所周知, C是一個面向?qū)ο蟮木幊陶Z言(面向?qū)ο蟮腃語言的特點就是:封裝、繼、 多態(tài)),它與面向過程的C語言不通,對面向…

目錄

前言

封裝?

封裝的意義

struct 和 class 的區(qū)別

成員屬性設(shè)置為私有

前言

眾所周知, C++是一個面向?qū)ο蟮木幊陶Z言(面向?qū)ο蟮腃++語言的特點就是:封裝、繼、?多態(tài)),它與面向過程的C語言不通,對面向過程的初級認(rèn)識就是他強調(diào)的是一個過程,這樣說是不是還是很空洞,下面舉個例子就會好理解很多:

在面向過程中:把大象裝進(jìn)冰箱需要3步:打開冰箱門把大象放進(jìn)去再關(guān)上冰箱,強調(diào)的是一個求解問的步驟

在面向?qū)ο笾?/span>:把大象和冰箱看作兩個對象,然后通過操作兩個對象來把大象放到冰箱里。關(guān)注的是對象,將一件事情拆分成不同的對象,靠對象之間的交互完成。

再比如一個選課系統(tǒng)
面向過程:選課、上課? 兩個過程
面向?qū)ο?/strong>:學(xué)生、老師? 關(guān)注的是兩個類對象之間的關(guān)系

?在C++中,萬事萬物皆為對象,對象有屬性行為

例如 :

人可以作為對象,屬性有姓名、年齡、性別、身高...,行為有走、跑、跳、吃飯...

車也可以作為對象,屬性有輪胎、方向盤、車燈...,行為有載人、放音樂、放空調(diào)...

具有相同性質(zhì)的對象,我們可以抽象成為類,人屬于人類,車屬于車類

封裝?

封裝的意義

封裝是C++面向?qū)ο笕筇攸c之一,它的主要意義就是在于將對象的屬性和行為作為一個整體,來表現(xiàn)我們的對象,另外就是對屬性和行為進(jìn)行權(quán)限的控制?

它的語法是:class 類名{ 訪問權(quán)限:屬性 / 行為 }? ?(class為定義類的關(guān)鍵字

下面定義一個圓類,求圓的周長

#include<iostream>
using namespace std;const double PI = 3.14
//設(shè)計一個類
class Circle
{//訪問權(quán)限public: //公共權(quán)限//屬性(通常就是一些變量)int m_r; //半徑//行為(通常用函數(shù)來獲取)double calculateZC() //獲取圓的周長{return 2*PI*m_r;}
};int main()
{//通過圓類 實例化一個具體的圓(對象)Circle cl;  // Circle是先前創(chuàng)建的類 cl是具體的圓對象//給圓對象的屬性進(jìn)行賦值cl.m_r = 10;  //通過  .  來獲取屬性 并進(jìn)行賦值cout << "圓的周長為:"<< cl.calculateZC <<endl;system("pause");return 0;
}

以上代碼就是設(shè)計一個圓類class Circle,在這個圓類中,定義了屬性半徑m_r,以及通過函數(shù)double calculateZC創(chuàng)建一個求解圓周長的行為,并且在主函數(shù)中通過圓類實例化了一個具體的圓對象 Circle cl來訪問我們的類,cl就是我們的是實例化對象,要獲取屬性,就要使用到“.”點這個符號,通過cl.m_r來獲取半徑,同時進(jìn)行賦值,同樣,獲取周長就是cl.calculate。

那么為加深對類設(shè)計的認(rèn)識,下面再來一個例子:設(shè)計一個學(xué)生類,屬性有姓名和學(xué)號,可以給姓名和學(xué)號賦值,可以顯示學(xué)生的姓名和學(xué)號,

#include<iostream>
using namespace std;
#include<string>//設(shè)計一個學(xué)生類
class Student
{//訪問權(quán)限public: //公共權(quán)限//屬性(通常就是一些變量)string m_Name; //姓名string m_Id; //學(xué)號//行為(通常用函數(shù)來獲取)void  setName(string name) //獲取學(xué)生姓名{m_Name = name;}void  setId(int id) //獲取學(xué)生學(xué)號{m_Id = id;}void  showStudent() //顯示學(xué)生信息{cout << "姓名:" << m_Name << "學(xué)號:" << m_Id << endl;}//除了通過在主函數(shù)里面復(fù)制的方式,還可以用函數(shù)在類的行為來進(jìn)行賦值void  setName(string name) //給學(xué)生姓名賦值{m_Name = name;}  };int main()
{//通過學(xué)生類 實例化一個具體的學(xué)生(對象)Student stu1;  //給學(xué)生1對象的屬性進(jìn)行賦值stu1.m_Name = "張三"; stu1.m_Id = "123456789";stu1.showStudent//給學(xué)生2對象的屬性進(jìn)行賦值stu2.m_Name = "李四"; stu2.m_Id = "1234567890";stu2.showStudent//通過行為對學(xué)生姓名進(jìn)行賦值stu1.setName("張三");system("pause");return 0;
}?

?注意:? ?類中的屬性和行為統(tǒng)稱為? ?成員

? ? ? ? ? ? ? ?屬性? 也稱為? 成員屬性? ? 或? ?成員變量

? ? ? ? ? ? ? ?行為? 也稱為? 成員函數(shù)? ?或? ?成員方法

?在上面代碼中我們發(fā)現(xiàn) 每次都會在屬性和行為前面進(jìn)行權(quán)限的限制(public),這是因為在設(shè)計類時,屬性和行為放在不同的權(quán)限下,訪問權(quán)限有三種:public(公共權(quán)限)、protected(保護(hù)權(quán)限)、private(私有權(quán)限)。下面一段代碼進(jìn)行詳細(xì)解釋

公共權(quán)限public類內(nèi)可以訪問類外可以訪問
保護(hù)權(quán)限protected類內(nèi)可以訪問類外不可以訪問 (子類可以訪問父類中的保護(hù)內(nèi)容)
私有權(quán)限private類內(nèi)可以訪問類外不可以訪問(子類不可以訪問父類中的私有內(nèi)容)
#include<iostream>
using namespace std;
#include<string>//設(shè)計一個類
class Person
{public: //公共權(quán)限string m_Name;//姓名protected: //保護(hù)權(quán)限string m_Car;//汽車private://私有權(quán)限int m_Password;//銀行卡密碼//行為(通常用函數(shù)來獲取)
public:void  func() //獲取學(xué)生姓名{m_Name = "張三";m_Car= "勞斯萊斯";m_Password = 123456;};  //類內(nèi)都可以進(jìn)行訪問};int main()
{//通過類 實例化一個具體的對象Person p1; p1.m_Name = "張三" ;p1.m_Car = "勞斯萊斯"; //此時這里會出現(xiàn)錯誤 因為汽車這個屬性是保護(hù)權(quán)限,不能在類外訪問p1.m_Password = "123456"; //此時這里會出現(xiàn)錯誤 因為銀行卡密碼這個屬性是保私有權(quán)限,不能在類外訪問system("pause");return 0;
}?

struct 和 class 的區(qū)別

?在C++中struct 和 class 的唯一區(qū)別就在于 默認(rèn)的訪問權(quán)限不同,struct默認(rèn)訪問權(quán)限為公共的,class的默認(rèn)訪問權(quán)限為私有的。

?#include<iostream>
using namespace std;
#include<string>//設(shè)計一個類
class C1
{string m_Name;//當(dāng)我們不定義權(quán)限的時候,默認(rèn)是私有權(quán)限
};
//定義一個結(jié)構(gòu)體
struct S1
{string m_Name;//當(dāng)我們不定義權(quán)限的時候,默認(rèn)是共有權(quán)限
};int main()
{C1 c1;//不能進(jìn)行訪問,因為class的默認(rèn)權(quán)限是私有的,類的外部不能訪問S1 s1;//能進(jìn)行訪問,因為struct的默認(rèn)權(quán)限是共有的,類的外部也能訪問system("pause");return 0;
}??

成員屬性設(shè)置為私有

通過使用私有成員屬性,可以實現(xiàn)類的封裝,隱藏內(nèi)部實現(xiàn)細(xì)節(jié),并提供對外部世界的受控訪問。這有助于提高代碼的模塊化程度,減少代碼的耦合性,同時也方便了代碼的維護(hù)和重構(gòu)。將成員屬性設(shè)置為私有,有以下優(yōu)點:

優(yōu)點 1:將所有的成員屬性設(shè)置為私有,可以自己控制讀寫權(quán)限

優(yōu)點 2:對于寫權(quán)限,我們可以檢測數(shù)據(jù)的有效

?#include<iostream>
using namespace std;
#include<string>class Person
{
bublic:void setName(string name) //寫操作{m_Name = name;}string getName(string name) //讀操作{return m_Name;}void setAge(int age) //寫操作{m_Age = age;}string getIdol(string idol) //讀操作{return m_Idol;}private:string m_Name;// 可讀可寫int m_Age;    //只寫不讀string m_Idol; //只讀不寫};int main()
{Person  p;p.setName("張三");//寫操作cout << " 姓名:" << p.getName() << endl; //讀操作p.setAge(18);//寫操作cout << " 年齡:" << p.m_Age<< endl; //讀操作,此時會發(fā)生錯誤,因為我們只給了寫的權(quán)限p.m_Idol="se";//寫操作,此時會發(fā)生錯誤,因為我們沒有給寫的權(quán)限cout << " 年齡:" << p.getIdol()<< endl; //讀操作system("pause");return 0;
}??

上面這段代碼可以看看出來,我們的定義了私有屬性:name、age、idol ,私有權(quán)限在類外是不能訪問的,現(xiàn)在我們想要進(jìn)行訪問,進(jìn)行讀和寫操作,于是我們就定個公有權(quán)限的讀寫函數(shù)來獲取,寫就是setxxx(例如setName),讀就是getxxx(例如getName),對于我們定義的幾個屬性,我們只想外部寫(更改)年齡,但是不想外部讀取年齡,此時就只需要定義一個setAge函數(shù)來對年齡進(jìn)行更改,而對于偶像Idol,我們只想外部進(jìn)行讀操作,并不能對它進(jìn)行寫操作(也就是更改Idol的姓名),此時就只需要一個getIdol函數(shù)來返回我們偶像名字,并且在主函數(shù)中進(jìn)行打印,這樣外界就知道了這個人的idol是誰了,如果又讀又寫,就兩個函數(shù)都定義一個,然后在主函數(shù)進(jìn)行調(diào)用。以上就是將所有的成員屬性設(shè)置為私有,可以自己控制讀寫權(quán)限。

對于寫權(quán)限,我們可以檢測數(shù)據(jù)的有效,可以舉個例來說明,就是說 我們在寫入年齡的時候,可以進(jìn)行判斷輸入的年齡是否符合規(guī)定,比如我們在寫函數(shù)setAge()中添加一個判斷語句來設(shè)置輸入的年齡應(yīng)該是0到100之間,如果寫入的年齡超過100或低于0,那么就是無效的。

?#include<iostream>
using namespace std;
#include<string>class Person
{
bublic:void setAge(int age) //寫操作{if (age < 0 || age > 100){cout << "年齡" << age << "輸入數(shù)字無效,賦值失敗!" << endl;return;}m_Age = age;}private:string m_Name;// 可讀可寫int m_Age;    //只寫不讀  (只能在0-100之間)string m_Idol; //只讀不寫};int main()
{Person  p;p.setAge(180);//寫操作cout << " 年齡:" << p.m_Age<< endl; //讀操作,此時會發(fā)生錯誤,因為我們只給了寫的權(quán)限system("pause");return 0;
}??

? ?

?

http://aloenet.com.cn/news/35068.html

相關(guān)文章:

  • 分類信息網(wǎng)站平臺的推廣新聞20字摘抄大全
  • 張家港保稅區(qū)建設(shè)規(guī)劃局網(wǎng)站湖南優(yōu)化公司
  • 做精神科網(wǎng)站專業(yè)代寫軟文
  • 電商網(wǎng)站seoseo管理系統(tǒng)培訓(xùn)
  • 南京做網(wǎng)站公司seo排名優(yōu)化推薦
  • wordpress好看分頁北京做網(wǎng)絡(luò)優(yōu)化的公司
  • 新聞網(wǎng)站開發(fā)書籍北京seo公司
  • 做網(wǎng)站上傳服務(wù)器嗎優(yōu)化網(wǎng)站教程
  • 海南高端網(wǎng)站建設(shè)直接打開百度
  • 淮南 搭建一個企業(yè)展示網(wǎng)站cba最新排名
  • 電腦裝機網(wǎng)站網(wǎng)站優(yōu)化的方法有哪些
  • 營銷型網(wǎng)站=企業(yè)登記代理網(wǎng)站關(guān)鍵詞優(yōu)化方法
  • 做網(wǎng)站那個平臺個人怎么做免費百度推廣
  • wordpress 導(dǎo)入幻燈片優(yōu)化網(wǎng)站建設(shè)
  • 杭州設(shè)計網(wǎng)站最好的公司東莞seo建站排名
  • 網(wǎng)絡(luò)服務(wù)合同糾紛定義簡述影響關(guān)鍵詞優(yōu)化的因素
  • 海南做房地產(chǎn)網(wǎng)站的網(wǎng)絡(luò)公司seo公司官網(wǎng)
  • 制作官網(wǎng)需要什么條件茶葉seo網(wǎng)站推廣與優(yōu)化方案
  • 網(wǎng)站制作手機網(wǎng)站成人培訓(xùn)班有哪些課程
  • 網(wǎng)站制作價格和流程云浮新增確診病例30例
  • 建網(wǎng)站的外包公司百度推廣怎么做步驟
  • wordpress花生殼lamp南京百度seo代理
  • 員工做違法網(wǎng)站seo顧問賺錢嗎
  • 企業(yè)網(wǎng)站內(nèi)容運營方案策劃網(wǎng)絡(luò)廣告怎么做
  • 網(wǎng)站建設(shè)項目國內(nèi)外分析報告長春網(wǎng)站推廣公司
  • 網(wǎng)站建設(shè)優(yōu)化廣告流量關(guān)鍵詞搜索排行榜
  • 做網(wǎng)站引流推廣賺錢一個2元
  • 網(wǎng)站建設(shè)實用教程企業(yè)郵箱申請
  • 網(wǎng)站做seo屏蔽搜索關(guān)鍵詞排名監(jiān)控批量查詢
  • 河北涿州網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷是指什么