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

溫馨提示×

溫馨提示×

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

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

C++ stl庫bind函數模板用法的注意事項

發布時間:2020-07-16 20:16:51 來源:網絡 閱讀:1455 作者:zmh009_NAME 欄目:編程語言

類成員函數

bind可以包裝類成員函數,創建函數對象。其中有接收類類型和類指針類型的版本,如:

#include <iostream>
#include <memory>
#include <functional>
using namespace std;

struct TesSt {
    TesSt()
    {}

    void update(const string &in_str) {
        str = in_str;
        cout << "str:" << str << endl;;
    }

    string str;
};

TesSt g_test_st;

int main () {
    auto func1 = bind(&TesSt::update, &g_test_st, "hihi"); 
    auto func2 = bind(TesSt::update, &g_test_st, "hihi");
    auto func3 = bind(&TesSt::update, g_test_st, "hihi");
    auto func4 = bind(TesSt::update, g_test_st, "hihi");
    return 0;
}

如果不做任何處理的話,bind函數是通過值拷貝的方式進行參數傳遞。也就是說,func1、func2是經過被拷貝的類指針構造,調用會更新g_test_st內容;func3、func4是值拷貝構造,調用時更新的是g_test_st的副本,不會影響原來的類變量。

另外,可以通過std::ref,使bind進行引用傳遞參數,如:

    auto func3 = bind(&TesSt::update, std::ref(g_test_st), "hihi");

這樣func3調用時更新的是g_test_st的引用內容,并不是副本。

向AI問一下細節

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

AI

方城县| 辽阳市| 朝阳区| 辰溪县| 兴海县| 琼结县| 德令哈市| 双桥区| 瑞安市| 土默特右旗| 邹平县| 岳普湖县| 灌阳县| 镇沅| 威海市| 彭泽县| 尼玛县| 屯留县| 鱼台县| 金塔县| 张北县| 牙克石市| 鹿邑县| 沅陵县| 平和县| 高邮市| 吉安县| 巨野县| 绥中县| 曲阳县| 陕西省| 沂水县| 台中县| 澎湖县| 夏邑县| 克什克腾旗| 西宁市| 长丰县| 克拉玛依市| 佛山市| 昌平区|