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

溫馨提示×

溫馨提示×

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

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

c++內聯函數使用和運算符重載的方法是什么

發布時間:2023-02-21 09:37:05 來源:億速云 閱讀:102 作者:iii 欄目:編程語言

本篇內容主要講解“c++內聯函數使用和運算符重載的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“c++內聯函數使用和運算符重載的方法是什么”吧!

一.內聯函數

內聯函數不走函數調用功能,相當于直接把函數執行的代碼塊復制過來了,類似于宏,但是功能一般來說比宏更強大注意

1.內聯函數比常規函數要快,但是代價是占用更多內存(空間換時間)
2.類內定義的普通函數都是內聯函數(注意是類內定義而不是類內聲明)
3.內聯函數一般把定義寫在頭文件中,而不是源文件

聲明方式
很簡單,在函數前面加上inline

二.運算符重載

int a = 1;
    CStu st;
    st + a;

在沒有運算符重載的情況下,上述運算會報錯。但是有了運算符重載,上述運算就會有結果了。

1.使用形式

返回值+operator+運算符+(),()里面放參數,其中一個參數一定要是對象

class CStu
{
public:
    int nAge;
    CStu()
    {
        nAge = 10;
    }
};
void operator+(CStu& st1, int b)
{
    cout << st1.nAge + b << endl;
}
int main()
{
    int a = 1;
    CStu st;
    st + a;
    system("pause");
    return 0;
}

上面是沒有返回值的,當然也可以有返回值,運算符重載返回值的作用就是:為了能夠進行連續運算

int operator+(CStu& st1, int b)
{
    return st1.nAge + b;
}
int main()
{
    int a = 1;
    CStu st;
    cout<<st + a + 1<<endl;
    system("pause");
    return 0;
}

2.類外重載與類內重載

上面的例子都是類外重載,其中要注意:參數里面其中一個一定要是對象,而且運算符兩側分別就是左參數和右參數。
類內重載使用示例如下

class CStu
{
public:
    int nAge;
    CStu()
    {
        nAge = 10;
    }
    void operator+(int b)//注意這里只能傳一個參數,因為左參數默認是this指針,也就是相當于有對象做參數
    {
        cout << nAge + b << endl;
    }
};

int main()
{
    int a = 1;
    CStu st;
    st + a;//形式一定是 對象+某個數據類型
    system("pause");
    return 0;
}

注意:形式很死板,就是對象+某個數,不能倒過來。而且默認有左參數是this指針,也就是函數里面可以使用this。

void operator+(int b)
    {
        cout << this->nAge + b << endl;
    }

到此,相信大家對“c++內聯函數使用和運算符重載的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

c++
AI

凤城市| 庆阳市| 射洪县| 宁津县| 潼南县| 潞西市| 昭苏县| 玉龙| 沂源县| 昆山市| 阳城县| 盐池县| 筠连县| 喀喇沁旗| 大兴区| 顺昌县| 隆林| 汝城县| 会东县| 古交市| 东至县| 浪卡子县| 鄂尔多斯市| 禹城市| 金堂县| 永宁县| 阜平县| 都兰县| 临桂县| 姜堰市| 芜湖市| 承德县| 军事| 东方市| 锡林郭勒盟| 庄浪县| 溆浦县| 阿城市| 宾川县| 庄河市| 阜城县|