91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++的struct與class怎么用

發布時間:2022-04-20 13:44:14 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

本篇內容介紹了“C++的struct與class怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、類的關鍵字

  • struct 在 C 語言中已經有了自己的含義,必須繼續兼容

  • 在C++ 中提供了新的關鍵字 class 用于類定義

  • class 和 struct 的用法是完全相同的

  • 在用 struct 定義類時,所有成員的默認訪問級別為 public

  • 在用 class 定義類時,所有成員的默認訪問級別為 private

如下:

C++的struct與class怎么用

下面看一段使用 class 的代碼:

#include <stdio.h>
 
struct A
{
    // defualt to public
    int i;
    // defualt to public
    int getI()
    {
        return i;
    }
};
 
class B
{
    // defualt to private
    int i;
    // defualt to private
    int getI()
    {
        return i;
    }
};
 
int main()
{
    A a;
    B b;
    
    a.i = 4;
    
    printf("a.getI() = %d\n", a.getI());
    
    b.i = 4;
    
    printf("b.getI() = %d\n", b.getI());
    
    return 0;
}

下面為輸出結果,運行報錯,指出 class 聲明的類,所有成員的默認訪問級別為 private

C++的struct與class怎么用

在 class B 里面加個 public 即可,如下:

class B
{
public:
    // defualt to private
    int i;
    // defualt to private
    int getI()
    {
        return i;
    }
};

下面為輸出結果:

C++的struct與class怎么用

二、類的真正形態

C++ 中的類支持聲明和實現的分離

將類的實現和定義分開

  • .h頭文件中只有類的聲明

  • 成員變量和成員函數的聲明

  • .cpp源文件中完成類的其它實現

  • 成員函數的具體實現

三、小實例

需求:開發一個用于四則運算的類

提供 setOperator 函數設置運算類型

提供 setParameter 函數設置運算參數

提供 result 函數進行運算

  • 其返回值表示運算的合法性

  • 通過引用參數返回結果

代碼如下:

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 <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;
}

下面為輸出結果:

C++的struct與class怎么用

“C++的struct與class怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

木兰县| 壶关县| 铁岭县| 凤阳县| 天峻县| 马尔康县| 灵丘县| 榆社县| 台北市| 宝丰县| 黄浦区| 阜新市| 汕尾市| 台南县| 微山县| 云浮市| 通辽市| 灵宝市| 凤冈县| 德昌县| 普兰县| 兴海县| 阿瓦提县| 武强县| 瓦房店市| 襄城县| 胶州市| 清丰县| 方城县| 永丰县| 嘉鱼县| 余庆县| 樟树市| 广宗县| 曲松县| 双牌县| 高淳县| 江达县| 石狮市| 西和县| 兴山县|