真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

第二章繼承與派生

這節(jié)課,我們來學(xué)習(xí)繼承。

專注于為中小企業(yè)提供做網(wǎng)站、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)察哈爾右翼中旗免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

當(dāng)從基類派生出新類時(shí),可以對(duì)派生類作如下幾個(gè)變化:

1、可以增加新的成員函數(shù)。

2、可以增加新的成員變量。

3、可以重新定義已有的成員函數(shù)。

4、可以改變現(xiàn)有的成員屬性。

我們先來學(xué)習(xí)一個(gè)簡(jiǎn)單的派生例子

//這是一個(gè)簡(jiǎn)單的派生例子

首先,創(chuàng)建一個(gè)Location類

Location.h文件如下:

#include 
using namespace std;
class Location
{
private:
    int iPointX;
                                                                                                                                                                                                                                                                                                                   
public:
    void setPointX(int _iPointX)
    {
        iPointX = _iPointX;
    }
    void showX()
    {
        cout<<"X="<

再創(chuàng)建一個(gè)Rectangle類

Rectangle.h文件如下:

#include 
#include "Location.h"
//此處可以不寫因?yàn)榭梢岳^承
//using namespace std;
class Rectangle:public Location
{
private:
    int iHight;
                                                                                                                                                                                                                                                                                          
public:
    void setHight(int _iHight)
    {
        iHight = _iHight;
    }
    void showH()
    {
        cout<<"H = "<

main函數(shù)如下:

#include "Rectangle.h"
int main(int argc, const char * argv[])
{
    Rectangle rect;
    rect.setPointX(10);
    rect.setHight(20);
                                                                                                                                                                                                                                                                                      
    rect.showX();
     rect.showH();
                                                                                                                                                                                                                                                                                       
    return 0;
}

代碼下載:http://pan.baidu.com/share/link?shareid=2883935448&uk=3189484501

訪問規(guī)則

私有派生例子:

#include

usingnamespacestd;

//程序分析:

//在這個(gè)例子中,基類的公有成員iVarA通過私有派生成了派生類的私有成員,所以當(dāng)Derived類再派生其子類時(shí),iVarA是不可訪問的。

//由于私有派生這個(gè)特點(diǎn),因此在實(shí)際工作中私有派生很少使用。

class Base
{
public:
int iVarA;
    Base()
    {
iVarA = 10;
    }
};
class Derived:private Base
{
public:
int iVarC;
    Derived()
    {
iVarC = 30;
    }
void show()
    {
cout<

代碼下載: http://pan.baidu.com/share/link?shareid=3533495783&uk=3189484501

保護(hù)派生

#include 
using namespace std;
//程序分析:
//在保護(hù)派生中,基類的私有和不可訪問成員在派生類中是不可訪問的成員在派生類中是不可訪問的,基類的保護(hù)成員繼續(xù)是保護(hù)的,而基類的公有成員在派生類中則變?yōu)楸Wo(hù)的。
class Base
{
                                                                                                                                                                                                       
                                                                                                                                                                                                       
public:
    int iVarA;
    Base()
    {
        iVarA = 10;
    }
};
class Derived:protected Base
{
                                                                                                                                                                                                       
public:
    int iVarC;
    Derived()
    {
        iVarC = 30;
    }
    void show()
    {
        cout<

下載地址:http://pan.baidu.com/share/link?shareid=792966415&uk=3189484501

多重繼承例子

#include 
//類C是從類A和類B中共同派生出來的。類C從類A公有派生,因此,類A的中公有函數(shù)setA和showA在類C中都是公有。
//類C從類B中私有派生,所以類B中的公有函數(shù),在類C中就是私有的。
using namespace std;
class A
{
private:
    int iVarA;
                                                                                                                                                                                          
                                                                                                                                                                                          
public:
    void setA(int _iVarA)
    {
        iVarA = _iVarA;
    }
    void showA()
    {
        cout<<"iVarA:"<

多重繼承中構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序

#include 
using namespace std;
class A
{
protected:
    int iVarA;
                                                                                                                                                                     
public:
    A(int _iVarA)
    {
        iVarA = _iVarA;
        cout<<"Construction A,iVarA = "<

代碼下載: http://pan.baidu.com/share/link?shareid=1098289671&uk=3189484501

多重繼承中的二義性

#include 
using namespace std;
class A
{
                                                                             
public:
    void Show()
    {
        cout<<"A"<

代碼下載:   http://pan.baidu.com/share/link?shareid=1143818360&uk=3189484501

多層繼承的二義性

#include 
using namespace std;
//多層繼承: 如果一個(gè)派生類從多個(gè)基類中派生,并且這些基類又有一個(gè)共同的基類,則在這個(gè)派生類中訪問這個(gè)共同的基類中的成員時(shí)可能出現(xiàn)二義性。
class Base
{
                                                  
public:
    int iBaseData;
                                                  
};
class A:public Base
{
                                                  
public:
    int iAData;
};
class B:public Base
{
                                                  
public:
    int iBData;
};
class Object:public A,public B
{
                                                  
public:
    int iObjectData;
};
int main(int argc, const char * argv[])
{
    Object obj;
    obj.A::iBaseData = 10;
    obj.B::iBaseData = 20;
    cout<<"obj.A::iBaseData = "<http://weahome.cn/article/jjcdjs.html
        

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部