16_類的真正形態

1. 類的關鍵字——class

  • 在用class定義類時,所有成員的默認訪問級別為private。
class B
{
    //defualt to private
    int i;
    // defualt to private
    int getI()
    {
        return i;
    }
};

2.類的真正形態

  • C++中的類支持聲明實現的分離
  • .h頭文件中只有類的聲明:成員變量和成員函數的聲明,主要作用:表達了用戶的需求
  • .cpp源文件中完成類的其它實現:成員函數的具體實現
實例:開發一個用于四則運算的類
需求描述
//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

// Opeartor.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 <stdio.h>
#include "Operator.h"

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

3. 小結

  • C++引用了心得關鍵字class用于定義類
  • struct和class區別在于默認訪問級別的不同
  • C++中的類支持聲明實現分離
    • 在頭文件中聲明類
    • 在源文件中實現類
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,868評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,754評論 18 399
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,065評論 25 708
  • 對了!還有最重要的他們,她們!
    驕楊YANG閱讀 146評論 0 0
  • 生活不只是眼前的茍且,還有詩和遠方。 很多人讀到這句話是嘆息的,因為他們茍且的活著,沒有詩,更沒有遠方。 很...
    自由無罪閱讀 249評論 0 0