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

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

類(lèi)的真正形態(tài)(十三)-創(chuàng)新互聯(lián)

    我們之前在 C++ 中表示類(lèi)的時(shí)候,是用 struct 表示的。那么經(jīng)過(guò)這些改進(jìn),結(jié)構(gòu)體 struct 變得越來(lái)越不像它在 C 語(yǔ)言中的樣子了。因此在 C++ 總提供了新的關(guān)鍵字 class 用于類(lèi)定義,class 和 struct 的用法是完全相同的。

創(chuàng)新互聯(lián)建站長(zhǎng)期為上千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為桂林企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,桂林網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

        那么 class 和 struct 有什么區(qū)別呢?在用 struct 定義類(lèi)時(shí),所以的成員默認(rèn)訪(fǎng)問(wèn)級(jí)別為 public;在用 class 定義類(lèi)時(shí),所有的成員的默認(rèn)訪(fǎng)問(wèn)級(jí)別為 private。我們來(lái)以代碼為例進(jìn)行分析

#include 

struct A
{
    // default to public
    int i;

    // default to public
    int getI()
    {
        return i;
    }
};

class B
{
    
    // default to private
    int i;

    // default to private
    int getI()
    {
        return i;
    }
};

int main()
{
    A a;
    B b;
    
    a.i = 2;
    
    printf("a.getI() = %d\n", a.getI());
    
    b.i = 3;
    
    printf("b.getI() = %d\n", b.getI());
    
    return 0;
}

        我們分別用 struct 和 class 定義了類(lèi)A 和 類(lèi)B,我們分別給它們的 i 進(jìn)行賦值,再調(diào)用 getI 函數(shù)進(jìn)行打印。依照我們之前所說(shuō)的,類(lèi)B 的應(yīng)該打印會(huì)出錯(cuò),我們看看編譯結(jié)果

類(lèi)的真正形態(tài)(十三)

        我們看到它確實(shí)報(bào)錯(cuò)了,說(shuō)類(lèi)B 中的成員是私有的。我們?cè)诘?17 行聲明為 public,再次編譯

類(lèi)的真正形態(tài)(十三)

        我們看到這次編譯通過(guò),并且成功的打印出它們的值了。

        下來(lái)我們開(kāi)發(fā)一個(gè)用于四則運(yùn)算的類(lèi):提供 setOperator 函數(shù)設(shè)置運(yùn)算類(lèi)型;提供 setParameter 函數(shù)設(shè)置運(yùn)算參數(shù);提供 result 函數(shù)進(jìn)行運(yùn)算,其返回值表示運(yùn)算的合法性,通過(guò)引用參數(shù)返回結(jié)果。在 C++ 中的類(lèi)支持聲明和實(shí)現(xiàn)的分離,也就是將類(lèi)的實(shí)現(xiàn)和定義分開(kāi)。 .h 頭文件中只有類(lèi)的聲明:成員變量和成員函數(shù)的聲明。 .cpp 源文件中完成類(lèi)的其它實(shí)現(xiàn):成員函數(shù)的具體實(shí)現(xiàn)。

Operator.h 源碼

#ifndef _OPERATOR_H_
#define _OPERATOR_H_

class Operator
{
private:
    char mOp;
    double mP1;
    double mP2;
    
public:
    bool setOperator(char op);
    void setParameter(double p1, double p2);
    bool result(double& r);
};

#endif

Operator.cpp 源碼

#include "Operator.h"

bool Operator::setOperator(char op)
{
    bool ret = false;
        
    if( (op == '+') || (op == '-') || (op == '*') || (op == '/') )
    {
        ret = true;
        mOp = op;
    }
    else
    {
        mOp = '\0';
    }
        
    return ret;
}

void Operator::setParameter(double p1, double p2)
{
    mP1 = p1;
    mP2 = p2;
}
    
bool Operator::result(double& r)
{
    bool ret = true;
        
    switch( mOp )
    {
        case '/':
            if( (-0.000000001 < mP2) && (mP2 < 0.000000001) )
            {
                ret = false;
            }
            else
            {
                r = mP1 / mP2;
            }
            break;
        case '+':
            r = mP1 + mP2;
            break;
        case '*':
            r = mP1 * mP2;
            break;
        case '-':
            r = mP1 - mP2;
            break;
        default:
            ret = false;
            break;
    }
        
    return ret;
}

test.cpp 源碼

#include 
#include "Operator.h"

int main()
{
    Operator op;
    double r = 0;
    
    op.setParameter(9, 3);
    op.setOperator('/');
    
    if( op.result(r) )
    {
        printf("r = %lf\n", r);
    }
    else
    {
        printf("Calculate error!\n");
    }
    
    return 0;
}

        我們編譯下看看是否如我們所愿

類(lèi)的真正形態(tài)(十三)

        我們看到已經(jīng)正確執(zhí)行,那么我們看到頭文件和實(shí)現(xiàn)的源文件分開(kāi)來(lái),代碼可維護(hù)性提高了。test.cpp 文件中寫(xiě)的代碼很少,很清晰。這便是聲明和實(shí)現(xiàn)分離的效果了。通過(guò)對(duì)類(lèi)的學(xué)習(xí),總結(jié)如下:1、C++ 引進(jìn)了新的關(guān)鍵字 class 用于定義類(lèi),struct 和 class 的區(qū)別在于默認(rèn)訪(fǎng)問(wèn)級(jí)別不同;2、在 C++ 中的類(lèi)支持聲明和實(shí)現(xiàn)的分離:在頭文件中聲明類(lèi),在源文件中實(shí)現(xiàn)類(lèi)。

        歡迎大家一起來(lái)學(xué)習(xí) C++ 語(yǔ)言,可以加我QQ:243343083。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。


本文名稱(chēng):類(lèi)的真正形態(tài)(十三)-創(chuàng)新互聯(lián)
URL地址:http://weahome.cn/article/cecjss.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部