member-function-pointers

    0熱度

    1回答

    從the documentation for reflect.Value.Pointer(): 如果v的一種是FUNC按鍵,返回的指針是底層代碼的指針,但不一定足以唯一標識一個單一的功能。唯一的保證是,當且僅當v是一個nil func值時,結果爲零。 看來很清楚,函數值變量必須包含的不僅僅是一個代碼指針。鑑於Go支持方法指針,這並不奇怪 - 但實際的底層實現是什麼? (它是如何不同,如果在所有,使

    1熱度

    2回答

    設置:我建立有部分C中的建築和部分C++。 以我體系結構I具有: 甲data_io(C)它獲取的數據發送到處理器回調並輸出處理的數據。 甲data_processor(C),其負責處理數據和按需變化。 甲settings_manager(C++),它決定使用哪個處理器。 的關係如下: 的settings_manager對象被實例化,其內部初始化與一個默認處理器功能的data_processor,然

    0熱度

    1回答

    我試圖將包含字母「farming」的文本文件讀入鏈接的節點列表。我創建了一個名爲NumberList的類,它具有節點的結構。這是標題。 #ifndef NUMBERLIST #define NUMBERLIST #include <iostream> using namespace std; class NumberList { protected: //declare a cl

    1熱度

    2回答

    我觀察到,當我嘗試獲取指向成員函數的指針時,不同的GCC版本的行爲有所不同。 class Foo { public: void bar() { } }; int main() { void (Foo::*func1)(void) = Foo::bar; // Error with gcc 4.3.2 and gcc 7.1.0 return 0; }

    2熱度

    1回答

    我正在實現與字符串關鍵字相關聯的成員變量指針映射。 所有變量的範圍從基類「BaseA」 從映射訪問變量時,只需要使用基類方法(示例中的getDesc()),因此不需要檢索原始類型。 該代碼編譯並在GNU g ++ 6.2.1下運行,但根據我所讀到的,reinterpret_cast的使用不可移植,並且可能無法與其他編譯器一起使用。 這是正確的嗎?還是這個代碼符合C++標準? 有沒有其他的方式來做到

    1熱度

    1回答

    我設置了這個帳戶主要是因爲我在其他地方找不到答案。我檢查了各種教程或在stackoverflow和不同頁面上的問題/答案。 我正在編程一個基於終端的textadventure,並需要一個函數的地圖。這是我得到了什麼(我離開了所有的意思都沒有對這個問題的東西) #include <map> using namespace std; class CPlayer { private:

    4熱度

    3回答

    我正在嘗試編寫一個模板類的函數,它接受一個參數,該參數是大類的私有數據中的成員類的函數指針。當你調用該成員時,它會在較小的類上調用該函數。 (?混淆右)爲了證明,我這裏有一個非工作例如: #include <vector> #include <iostream> using namespace std; template <typename T, typename C> struct

    -3熱度

    1回答

    在我問我的問題之前,我將描述該場景。 比方說,我有一個叫BinaryOperator的類,有兩個子類:And,Or。 我想知道是否有可能對我來說,And返回類型爲Or*定義一個函數f()像這樣: Or* And::f() 而且還Or返回類型爲And*定義一個函數g()像這樣: And* Or::g() 當我嘗試這樣做時,最終出現編譯錯誤,說「'或'沒有命名類型」。 請,如果可以,任何清晰度

    1熱度

    2回答

    我試圖創建一個函數重載因此它只能結合(工程)成員函數。我接過來一看在std::mem_fn http://en.cppreference.com/w/cpp/utility/functional/mem_fn template <class Ret, class T> /* unspecified */ mem_fn (Ret T::* pm); 函數簽名所以我構建我的參數,例如 templ

    3熱度

    1回答

    這裏是指針到接受兩個整數並返回一個int一個類的方法: template <typename T> using TFunction = int (T::*)(int, int); 我只能通過這裏非const方法。 如何改變這個模板,使它能接受const和非const方法?