中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

wordpress上傳圖片x整站優(yōu)化關(guān)鍵詞推廣

wordpress上傳圖片x,整站優(yōu)化關(guān)鍵詞推廣,韓國(guó)優(yōu)秀網(wǎng)站設(shè)計(jì)欣賞,做網(wǎng)站必須用對(duì)方服務(wù)器?個(gè)人博客:Pandaconda-CSDN博客 📣專欄地址:http://t.csdnimg.cn/fYaBd 📚專欄簡(jiǎn)介:在這個(gè)專欄中,我將會(huì)分享 C 面試中常見(jiàn)的面試題給大家~ ??如果有收獲的話,歡迎點(diǎn)贊👍收藏&…

?個(gè)人博客:Pandaconda-CSDN博客

📣專欄地址:http://t.csdnimg.cn/fYaBd

📚專欄簡(jiǎn)介:在這個(gè)專欄中,我將會(huì)分享 C++ 面試中常見(jiàn)的面試題給大家~
??如果有收獲的話,歡迎點(diǎn)贊👍收藏📁,您的支持就是我創(chuàng)作的最大動(dòng)力💪

16. 什么是虛擬繼承?

由于 C++ 支持多繼承,除了 public、protected 和 private 三種繼承方式外,還支持虛擬(virtual)繼承,舉個(gè)例子:

#include <iostream>
using namespace std;class A{}
class B : virtual public A{};
class C : virtual public A{};
class D : public B, public C{};int main()
{cout << "sizeof(A):" << sizeof A <<endl; // 1,空對(duì)象,只有一個(gè)占位cout << "sizeof(B):" << sizeof B <<endl; // 4,一個(gè)bptr指針,省去占位,不需要對(duì)齊cout << "sizeof(C):" << sizeof C <<endl; // 4,一個(gè)bptr指針,省去占位,不需要對(duì)齊cout << "sizeof(D):" << sizeof D <<endl; // 8,兩個(gè)bptr,省去占位,不需要對(duì)齊
}

上述代碼所體現(xiàn)的關(guān)系是,B 和 C 虛擬繼承 A,D 又公有繼承 B 和 C,這種方式是一種菱形繼承或者鉆石繼承,可以用如下圖來(lái)表示:

??

??

虛擬繼承的情況下,無(wú)論基類被繼承多少次,只會(huì)存在一個(gè)實(shí)體。虛擬繼承基類的子類中,子類會(huì)增加某種形式的指針,或者指向虛基類子對(duì)象,或者指向一個(gè)相關(guān)的表格;表格中存放的不是虛基類子對(duì)象的地址,就是其偏移量,此類指針被稱為 bptr,如上圖所示。如果既存在 vptr 又存在 bptr,某些編譯器會(huì)將其優(yōu)化,合并為一個(gè)指針。

沒(méi)有虛繼承:

// 間接基類A
class A{
protected:int m_a;
};
// 直接基類B
class B: public A{
protected:int m_b;
};
// 直接基類C
class C: public A{
protected:int m_c;
};
// 派生類D
class D: public B, public C{
public:void seta(int a){//m_a = a;     //命名沖突A::m_a = a;    //命名不再?zèng)_突}void setb(int b){m_b = b; //正確}void setc(int c){m_c = c; //正確} void setd(int d){m_d = d; //正確} 
private:int m_d;
};
int main(){D d;return 0;
}

有虛繼承:

// 間接基類A
class A{
protected:int m_a;
};
// 直接基類B
class B: virtual public A{
protected:int m_b;
};
// 直接基類C
class C: virtual public A{
protected:int m_c;
};
//派生類D
class D: public B, public C{
public:void seta(int a){m_a = a; //正確}void setb(int b){m_b = b; //正確}void setc(int c){m_c = c; //正確} void setd(int d){m_d = d; //正確} 
private:int m_d;
};

17. 哪些函數(shù)不能是虛函數(shù)?把你知道的都說(shuō)一說(shuō)

  1. 構(gòu)造函數(shù),構(gòu)造函數(shù)初始化對(duì)象,派生類必須知道基類函數(shù)干了什么,才能進(jìn)行構(gòu)造;當(dāng)有虛函數(shù)時(shí),每一個(gè)類有一個(gè)虛表,每一個(gè)對(duì)象有一個(gè)虛表指針,虛表指針在構(gòu)造函數(shù)中初始化。

  2. 內(nèi)聯(lián)函數(shù),內(nèi)聯(lián)函數(shù)表示在編譯階段進(jìn)行函數(shù)體的替換操作,而虛函數(shù)意味著在運(yùn)行期間進(jìn)行類型確定,所以內(nèi)聯(lián)函數(shù)不能是虛函數(shù)。

  3. 靜態(tài)函數(shù),靜態(tài)函數(shù)不屬于對(duì)象屬于類,靜態(tài)成員函數(shù)沒(méi)有 this 指針,因此靜態(tài)函數(shù)設(shè)置為虛函數(shù)沒(méi)有任何意義。

  4. 友元函數(shù),友元函數(shù)不屬于類的成員函數(shù),不能被繼承。對(duì)于沒(méi)有繼承特性的函數(shù)沒(méi)有虛函數(shù)的說(shuō)法。

  5. 普通函數(shù),普通函數(shù)不屬于類的成員函數(shù),不具有繼承特性,因此普通函數(shù)沒(méi)有虛函數(shù)。

  6. 模板函數(shù),每個(gè)含有虛函數(shù)的類中都有一個(gè)虛函數(shù)表,該虛函數(shù)表存儲(chǔ)著該類的所有的虛函數(shù)的地址。然而,當(dāng)虛函數(shù)為模板函數(shù)時(shí),由于編譯階段無(wú)法確定類的虛函數(shù)表的大小,因此編譯器禁止這種用法。這是因?yàn)榫幾g器在編譯一個(gè)文件時(shí)并不知道其他文件對(duì)該類的虛函數(shù)的調(diào)用情況,所以無(wú)法確定模板虛函數(shù)的實(shí)例化個(gè)數(shù)。

18. 什么是純虛函數(shù),與虛函數(shù)的區(qū)別

純虛函數(shù)首先是虛函數(shù),其次它沒(méi)有函數(shù)體,取而代之的是用 “=0”。

既然是虛函數(shù),它的函數(shù)指針會(huì)被存在虛函數(shù)表中,由于純虛函數(shù)并沒(méi)有具體的函數(shù)體,因此它在虛函數(shù)表中的值就為 0,而具有函數(shù)體的虛函數(shù)則是函數(shù)的具體地址。

一個(gè)類中如果有純虛函數(shù)的話,稱其為抽象類。抽象類不能用于實(shí)例化對(duì)象,否則會(huì)報(bào)錯(cuò)。抽象類一般用于定義一些公有的方法。子類繼承抽象類也必須實(shí)現(xiàn)其中的純虛函數(shù)才能實(shí)例化對(duì)象。

舉個(gè)例子:

#include <iostream>
using namespace std;class Base
{
public:virtual void fun1(){cout << "普通虛函數(shù)" << endl;}virtual void fun2() = 0;virtual ~Base() {}
};class Son : public Base
{
public:virtual void fun2() {cout << "子類實(shí)現(xiàn)的純虛函數(shù)" << endl;}
};int main()
{Base* b = new Son;b->fun1(); //普通虛函數(shù)b->fun2(); //子類實(shí)現(xiàn)的純虛函數(shù)return 0;
}

虛函數(shù)和純虛函數(shù)區(qū)別?

  • 虛函數(shù)是為了實(shí)現(xiàn)動(dòng)態(tài)編聯(lián)產(chǎn)生的,目的是通過(guò)基類類型的指針指向不同對(duì)象時(shí),自動(dòng)調(diào)用相應(yīng)的、和基類同名的函數(shù)(使用同一種調(diào)用形式,既能調(diào)用派生類又能調(diào)用基類的同名函數(shù))。虛函數(shù)需要在基類中加上 virtual 修飾符修飾,因?yàn)?virtual 會(huì)被隱式繼承,所以子類中相同函數(shù)都是虛函數(shù)。當(dāng)一個(gè)成員函數(shù)被聲明為虛函數(shù)之后,其派生類中同名函數(shù)自動(dòng)成為虛函數(shù),在派生類中重新定義此函數(shù)時(shí)要求函數(shù)名、返回值類型、參數(shù)個(gè)數(shù)和類型全部與基類函數(shù)相同

  • 純虛函數(shù)只是相當(dāng)于一個(gè)接口名,但含有純虛函數(shù)的類不能夠?qū)嵗?/p>

http://www.risenshineclean.com/news/60938.html

相關(guān)文章:

  • 網(wǎng)站設(shè)計(jì)的思路網(wǎng)站建設(shè)有多少公司
  • php網(wǎng)站權(quán)限設(shè)置網(wǎng)站鏈接查詢
  • 自己做的網(wǎng)站鏈接到微信支付界面微信推廣方法
  • 如何卸載和重裝wordpress保定網(wǎng)站seo
  • 重慶平臺(tái)網(wǎng)站建設(shè)平臺(tái)推廣網(wǎng)站文案
  • 房產(chǎn)網(wǎng)站制作流程關(guān)鍵詞的作用
  • 軟件管理工程師福州seo優(yōu)化排名推廣
  • 成全視頻在線觀看在線播放seo是做什么工作的
  • 做國(guó)外的網(wǎng)站網(wǎng)絡(luò)推廣優(yōu)化服務(wù)
  • 網(wǎng)站icp備案咋做查詢網(wǎng)138網(wǎng)站域名
  • 網(wǎng)站o2o如何制作一個(gè)網(wǎng)址
  • 兩個(gè)相同的網(wǎng)站對(duì)做優(yōu)化有幫助網(wǎng)絡(luò)推廣渠道
  • 個(gè)人網(wǎng)站設(shè)計(jì)內(nèi)容和要求百度圖片搜索引擎入口
  • 廣西網(wǎng)站建設(shè)哪家好關(guān)鍵字
  • 網(wǎng)站icp備案怎么做全網(wǎng)營(yíng)銷與seo
  • 天津網(wǎng)站建設(shè)哪家有百度市場(chǎng)應(yīng)用官方app
  • 如何提升網(wǎng)站速度網(wǎng)絡(luò)營(yíng)銷模式有哪些?
  • 做調(diào)查賺錢網(wǎng)站推廣營(yíng)銷軟件app
  • 成立一個(gè)網(wǎng)站軟件需要多少錢長(zhǎng)春關(guān)鍵詞搜索排名
  • 做食品網(wǎng)站需要什么資質(zhì)中國(guó)新聞網(wǎng)發(fā)稿
  • 好的做網(wǎng)站的域名服務(wù)器ip地址查詢
  • 為企業(yè)提供網(wǎng)站建設(shè)服務(wù)今日熱搜榜排名最新
  • 請(qǐng)問(wèn)婚慶網(wǎng)站建設(shè)該怎么做呢保溫杯軟文營(yíng)銷300字
  • 典型的b2b平臺(tái)有哪些成都百度提升優(yōu)化
  • 銅陵網(wǎng)站開(kāi)發(fā)交換友情鏈接的注意事項(xiàng)
  • 中山做app網(wǎng)站公司河南網(wǎng)站排名優(yōu)化
  • canvas做的手機(jī)網(wǎng)站搜索引擎優(yōu)化指南
  • 建筑專業(yè)網(wǎng)站有哪些哪里能搜索引擎優(yōu)化
  • 扁平式風(fēng)格網(wǎng)站建站abc官方網(wǎng)站
  • 去年做啥網(wǎng)站能致富廣州中小企業(yè)seo推廣運(yùn)營(yíng)