member-function-pointers

    4熱度

    1回答

    我目前正在開發一個Qt項目,並且遇到了一些SLOT問題。 我想傳遞一個指向成員函數的指針作爲SLOT的參數。爲此,我在班上宣佈了SLOT,但是當我這樣做時,我得到了MOC錯誤。 我不知道我想達到什麼甚至是可能的。 名爲MainFrame類語法的爲例: void slotAnswerReceived (QString answer, void (MainFrame::*ptr)(QString));

    1熱度

    2回答

    我想提出以下設計模式來討論。它在基類中實現了一個通用的「getMany」方法,該方法使用派生類中的給定get方法獲取許多實體(這裏用於簡化顯式類型int)。這意味着任何派生類都必須通知「getMany」方法使用哪個get-method。這是在基類的派生類中調用指向成員函數的一個例子。 我想提出的討論:什麼替代方案,更容易實現相同的模式可以想到? 謝謝! PS:如上所述,在真實情況下,人們當然會將固

    0熱度

    3回答

    我想將類A的成員函數作爲參數傳遞給全局函數。我該做些什麼才能做到這一點?另外,這是一個好主意嗎?上下文:我想這樣做是因爲(同義詞)doSomething(...)是一個非常通用的函數,用於main()以及不同的類。因此,我可以避免在項目中有相同代碼的多個副本。什麼是替代品(如果它不是最佳的)? #include <iostream> using namespace std; double d

    0熱度

    2回答

    我有一個接受一個成員函數指針的類bar的方法中的一種類foo,但類BAR可以具有更短的壽命比foo是有辦法使函子可以之前檢查bar的存在執行? 目前,我試圖使用std::function的bool operator沒有成功。 class Foo { public: void Foo::SetCallback(std::function< void(void) > cb) {

    -1熱度

    3回答

    我正面臨模板成員函數指針的問題。 代碼如下所示。 #include <String> #include <iostream> template<typename T> struct method_ptr { typedef void (T::*Function)(std::string&); }; template <class T> class EventHandler

    0熱度

    1回答

    我面臨模板成員函數指針的問題。代碼如下所示。 #include <String> #include <iostream> template<typename T> struct method_ptr { typedef void (T::*Function)(std::string&); }; template <class T> class EventHandler

    1熱度

    2回答

    我一直在試圖給一個函數指針(一類)分配給成員函數(其他類)的功能: --- Game.h --- #ifndef GAME_H #define GAME_H #include "Screen.h" class Game { private: void (*HandleCurrentScreen)(); public: void SetScreen(const

    0熱度

    3回答

    好的,我試圖映射一些我的成員函數在.h文件中,這是爲了能夠在我實現代碼時使用映射。然而,幾小時後,我無處可去,所以我想要建議,或者如果有人知道如何實現這一點。作爲參考,這些是錯誤。 ./Assembler.h:51:2: error: C++ requires a type specifier for all declarations functions["load"] = load;

    1熱度

    2回答

    我有一個cThread類C++ API,並且此方法來創建一個線程: void cThread::start(void(*a_function)(void), CThreadPriority a_level); 我已經做了類和init()方法來啓動螺紋和updateHaptics()方法由線程執行: void EntryClass::init() { typedef void (EntryC

    1熱度

    3回答

    我有以下兩類: class A { public: A() { m_ptr = NULL; } void (*m_ptr)(); void a() { if (m_ptr) m_ptr(); } }; class B : public A { public: B() { m_ptr = b; } void b() { std: