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

當前位置: 首頁 > news >正文

邯鄲網(wǎng)站建設(shè)哪家好windows優(yōu)化大師怎么使用

邯鄲網(wǎng)站建設(shè)哪家好,windows優(yōu)化大師怎么使用,網(wǎng)站建設(shè)合同甲乙雙方怎么確定,做網(wǎng)站首選智投未來1類和對象(1) 一、類的相關(guān)內(nèi)容1.訪問限定符2.class關(guān)鍵字與struct關(guān)鍵字的區(qū)別3.類域 二、this指針三、成員函數(shù)存放在哪里?1. 函數(shù)的存放位置2. 練習題 一、類的相關(guān)內(nèi)容 1.訪問限定符 (1)C?種實現(xiàn)封裝的?式&…

類和對象(1)

  • 一、類的相關(guān)內(nèi)容
    • 1.訪問限定符
    • 2.class關(guān)鍵字與struct關(guān)鍵字的區(qū)別
    • 3.類域
  • 二、this指針
  • 三、成員函數(shù)存放在哪里?
    • 1. 函數(shù)的存放位置
    • 2. 練習題

一、類的相關(guān)內(nèi)容

1.訪問限定符

(1)C++?種實現(xiàn)封裝的?式,?類將對象的屬性與?法結(jié)合在?塊,讓對象更加完善,通過訪問權(quán)限選擇性的將其接?提供給外部的??使?。

(2)public修飾的成員在類外可以直接被訪問;protected和private修飾的成員在類外不能直接被訪
問,protected和private是?樣的,以后繼承章節(jié)才能體現(xiàn)出他們的區(qū)別。

(3)訪問權(quán)限作?域從該訪問限定符出現(xiàn)的位置開始直到下?個訪問限定符出現(xiàn)時為?,如果后?沒有訪問限定符,作?域就到 }即類結(jié)束。

(4)class定義成員沒有被訪問限定符修飾時默認為private,struct默認為public。

(5)?般成員變量都會被限制為private/protected,需要給別?使?的成員函數(shù)會放為public。
在這里插入圖片描述

2.class關(guān)鍵字與struct關(guān)鍵字的區(qū)別

(1)class為定義類的關(guān)鍵字,后面跟類的名字,{}中為類的主體,注意類定義結(jié)束時后?分號不能省
略。類體中內(nèi)容稱為類的成員;類中的變量稱為類的屬性或成員變量; 類中的函數(shù)稱為類的?法或
者成員函數(shù)。
(2)C++中struct也可以定義類,C++兼容C中struct的?法,同時struct升級成了類,明顯的變化是
struct中可以定義函數(shù)。

#include<iostream>
using namespace std;
// C++升級struct升級成了類
// 1、類??可以定義函數(shù)
// 2、struct名稱就可以代表類型
// C++兼容C中struct的?法//這是c語言結(jié)構(gòu)體的定義:ListNodeC不能代表類型,要加上struct關(guān)鍵字,除非typedef
typedef struct ListNodeC
{struct ListNodeC* next;int val;
}LTNode;// 不再需要typedef,ListNodeCPP就可以代表類型
struct ListNodeCPP
{void Init(int x){next = nullptr;val = x;}ListNodeCPP* next;int val;
};
int main()
{return 0;
}

3.類域

(1)類定義了?個新的作?域,類的所有成員都在類的作?域中,在類體外定義成員時,需要使? :: 作?域操作符指明成員屬于哪個類域。

(2)類域影響的是編譯的查找規(guī)則,下?程序中Init如果不指定類域Stack,那么編譯器就把Init當成全
局函數(shù),那么編譯時,找不到array等成員的聲明/定義在哪?,就會報錯。指定類域Stack,就是知
道Init是成員函數(shù),當前域找不到的array等成員,就會到類域中去查找。

#include<iostream>
using namespace std;
class Stack
{
public:
// 成員函數(shù)void Init(int n = 4);
private:
// 成員變量int* array;size_t capacity;size_t top;
};
// 聲明和定義分離,需要指定類域
void Stack::Init(int n)  //缺省值只能在聲明定義
{array = (int*)malloc(sizeof(int) * n);if (nullptr == array){perror("malloc申請空間失敗");return;}capacity = n;top = 0;
}
int main()
{Stack st;st.Init();return 0;
}

二、this指針

(1)Date類中有 Init 與 Print 兩個成員函數(shù),函數(shù)體中沒有關(guān)于不同對象的區(qū)分,而且成員函數(shù)并不屬于某一個對象,同類的所有對象共享一份成員函數(shù)。那當d1調(diào)?Init和Print函數(shù)時,該函數(shù)是如何知道應(yīng)該訪問的是d1對象還是d2對象呢?那么這?就要看到C++給了?個隱含的this指針解決這?的問題。

(2)編譯器編譯后,類的成員函數(shù)默認都會在形參第?個位置,增加?個當前類類型的指針,叫做this
指針。?如Date類的Init的真實原型為, void Init(Date* const this, int year,int month, int day)。

(3)類的成員函數(shù)中訪問成員變量,本質(zhì)都是通過this指針訪問的,如Init函數(shù)中給_year賦值,
this->_year = year。

(4)C++規(guī)定不能在實參和形參的位置顯?的寫this指針(編譯時編譯器會處理),但是可以在函數(shù)體內(nèi)顯?使?this指針。

#include<iostream>
using namespace std;
class Date
{
public:
// void Init(Date* const this, int year, int month, int day)
void Init(int year, int month, int day)
{//注意:this指針只能指向當前對象
// 編譯報錯:error C2106: “=”: 左操作數(shù)必須為左值
// this = nullptr;_year = year;this->_month = month;this->_day = day;
}
void Print()
{cout << _year << "/" << _month << "/" << _day << endl;
}
private:// 這?只是聲明,沒有開空間int _year;int _month;int _day;
};
int main()
{
// Date類實例化出對象d1和d2Date d1;Date d2;
// d1.Init(&d1, 2024, 3, 31);d1.Init(2024, 3, 31);d1.Print();d2.Init(2024, 7, 5);d2.Print();return 0;
}

三、成員函數(shù)存放在哪里?

1. 函數(shù)的存放位置

  1. 代碼段存儲:
    無論是全局函數(shù)、靜態(tài)成員函數(shù)、const成員函數(shù)還是普通成員函數(shù),在編譯后都會被放置在代碼段中。這是因為函數(shù)代碼是共享資源,不需要為每個對象實例都復(fù)制一份,更不會直接存儲在對象的內(nèi)存布局中。
  2. 對象不存儲函數(shù)代碼:
    當我們創(chuàng)建一個類的對象時,對象本身只包含其數(shù)據(jù)成員和可能的虛函數(shù)表指針(如果類包含虛函數(shù))。成員函數(shù)代碼并不存儲在對象中。
  3. this指針的作用:
    當成員函數(shù)被調(diào)用時,編譯器會自動傳遞一個指向調(diào)用對象的指針,即this指針。這個指針使得成員函數(shù)能夠訪問和修改對象的數(shù)據(jù)成員。this指針并不是成員函數(shù)的存儲位置,而是函數(shù)訪問對象數(shù)據(jù)成員的橋梁。
  4. 虛函數(shù)和虛函數(shù)表:
    如果類包含虛函數(shù),編譯器會為每個包含虛函數(shù)的類生成一個虛函數(shù)表(vtable)。虛函數(shù)表包含了指向虛函數(shù)實現(xiàn)的指針。對象實例中包含一個指向其所屬類的虛函數(shù)表的指針(vptr)。當通過基類指針或引用調(diào)用虛函數(shù)時,會根據(jù)虛函數(shù)表找到正確的函數(shù)實現(xiàn)進行調(diào)用。(詳情看多態(tài)一節(jié))。

例如:
在這里插入圖片描述
匯編角度:
在這里插入圖片描述

2. 練習題

#include<iostream>
using namespace std;
class A
{
public:void Print(){cout << "A::Print()" << endl;}
private:int _a;
};
int main()
{A* p = nullptr;p->Print();return 0;
}

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

http://m.aloenet.com.cn/news/28086.html

相關(guān)文章:

  • php做網(wǎng)站中下一步按鈕中國職業(yè)培訓在線平臺
  • 做網(wǎng)店在素材網(wǎng)站找的圖侵權(quán)嗎地域名網(wǎng)址查詢
  • 水印在線制作網(wǎng)站百度識圖搜索
  • 校園網(wǎng)站建設(shè) 方案論證一鍵搭建網(wǎng)站
  • 網(wǎng)站目錄架構(gòu)網(wǎng)店代運營公司靠譜嗎
  • 阿里云服務(wù)器怎么做網(wǎng)站windows優(yōu)化大師官方
  • 網(wǎng)站寬度 1000px長沙網(wǎng)絡(luò)科技有限公司
  • 做建網(wǎng)站的工作一年賺幾百萬百度小說app下載
  • 新生活cms訂貨系統(tǒng)網(wǎng)站運營推廣選擇樂云seo
  • 可信的品牌網(wǎng)站建設(shè)病毒營銷案例
  • 找長期合作加工廈門最快seo
  • 門面設(shè)計效果圖福建seo外包
  • 想做一個網(wǎng)站怎么做google關(guān)鍵詞規(guī)劃師
  • 域名 a記錄 手機網(wǎng)站杭州網(wǎng)站優(yōu)化
  • 網(wǎng)絡(luò)做翻譯的網(wǎng)站愛站seo綜合查詢
  • asp.net網(wǎng)站開發(fā)案例教程湖北網(wǎng)站seo策劃
  • 常州做網(wǎng)站的公司有哪些今天實時熱搜榜排名
  • 重慶今天最新消息漯河seo公司
  • wordpress站點全屏快速排名優(yōu)化推廣手機
  • 做金融類網(wǎng)站西安企業(yè)seo外包服務(wù)公司
  • 做html網(wǎng)站搜索框代碼新浪輿情通官網(wǎng)
  • asp網(wǎng)站搭建軟件南寧網(wǎng)站優(yōu)化
  • 代替手動修改網(wǎng)站模板標簽seo標題優(yōu)化分析范文
  • 網(wǎng)站標題如何書寫軟文接單平臺
  • 泰州網(wǎng)站設(shè)計哪家好網(wǎng)上營銷的平臺有哪些
  • 網(wǎng)站建設(shè)技能描述免費發(fā)布推廣平臺
  • nike網(wǎng)站建設(shè)方案診斷網(wǎng)站seo現(xiàn)狀的方法
  • 西安網(wǎng)站制作百億科技全國廣告投放平臺
  • 石家莊做網(wǎng)站的公司有哪些怎么制作鏈接網(wǎng)頁
  • 建模培訓機構(gòu)優(yōu)化seo網(wǎng)站