member-function-pointers

    10熱度

    2回答

    我試圖從成員函數做一些回調和一切正常,直到我試圖用2類爲回調對象派生的模板類時,我得到了以下錯誤: error C2440: 'reinterpret_cast' : Pointers to members have different representations; cannot cast between them 這件事標誌着我說的成員函數指針有不同的表示(DOH!) 這些是什麼表示?他

    4熱度

    1回答

    摘要 我有一個存儲優化問題並運行求解器的類。 如果求解器失敗,我想考慮一個子問題並使用相同的求解器(和類)來求解。 引言 優化問題本質上是很多(數學)函數。問題函數定義在類外,但子問題的功能都定義在類內部,所以他們有不同的類型(例如void (*)和void (MyClass::*)。 起初,我以爲我可以投的成員函數的非-member指針到函數的類型,但我發現我不能那麼我在尋找一些其他的方式 示例

    4熱度

    2回答

    我有一個類如下面 class A { public: A(int key) : m_key(key) {} int Key() const {return m_key;} private: int m_key; }; 我測試使用的unique_ptr與成員函數指針 int (A::*MemFun)() const; MemFun = &A::Ke

    1熱度

    2回答

    我想在類中定義一個成員函數並使用它的指針。我知道我可以使用靜態成員函數,但問題在於我只能訪問該類的靜態成員。有沒有一種方法可以獲得函數指針,而不是靜態成員函數。 更具體地說:有一個庫,我正在使用它獲取一個函數指針作爲其輸入。我想寫一個成員函數並將其函數指針分配給該外部庫。我應該創建一個類的對象還是使用這個指針來做到這一點?

    1熱度

    2回答

    時,這是我儘量做到: class MyClass { public: template<typename T> void whenEntering(const std::string& strState, T& t, void T::(*pMemberFunction)(void)) /// compilation fails

    2熱度

    3回答

    我有一個簡單的類,如下所述。 typedef mytype int; typedef mytype2 float; class A { . . void run (mytype t) { .... do something with t ..... } . . } 我其中我已創建的模板函數(使它獨立A類),其應該採取函數指針(即A類方法

    0熱度

    2回答

    我嘗試在擁有一個線程的單例中實現一個函數指針數組。 在線程函數中,我得到一個錯誤,告訴我一個成員必須是相對於一個對象的。更多的commentline ... 頁眉: typedef struct{ int action; HWND handle; }JOB; class Class{ public: enum Action { 1,2 }; private

    4熱度

    2回答

    爲什麼這不起作用(Visual C++ 2012 Update 1),以及修復它的正確方法是什麼? #include <boost/lambda/bind.hpp> namespace bll = boost::lambda; struct Adder { int m; Adder(int m = 0) : m(m) { } int foo(int n) co

    3熱度

    2回答

    假設你有一個像 template<class T> struct A { void foo() { // Need access to "T" here typedef typename someTrait<T>::someType T2; } }; 一類和你想「註冊」(或存儲)(該類的實例或指針它)與一個容器(可能是STL),以便稍後調用所有已註冊

    1熱度

    2回答

    我有一個C++類,總之,有一個聲明,看起來像這樣: class Pico { ... Document document; // Custom Document class ... } 後來我打電話的Document的公共成員函數類: this->document->enableEditing(); 然而,智能感知強調this並指出「表達必須有指針型」。我能