調用類函數指標引起的編譯器錯誤 C2064

來源:互聯網
上載者:User
http://msdn.microsoft.com/zh-cn/library/z72c1dfd(v=VS.80).aspx
錯誤訊息

項不會計算為接受“number”個參數的函數

通過運算式調用了函數。該運算式未計算為函數指標。

下面的樣本產生 C2064:

// C2064.cppint i, j;char* p;void func() {   j = i();    // C2064, i is not a function   p();        // C2064, p doesn't point to a function}

下面的樣本產生 C2064:

// C2064b.cppstruct C {   void func1(){}   void func2(){}}; typedef void (C::*pFunc)();int main() {   C c;   pFunc funcArray[2] = {&C::func1, &C::func2};   (funcArray[0])();    // C2064}

可能的解決方案:

// C2064c.cppstruct C {   void func1(){}   void func2(){}}; typedef void (C::*pFunc)();int main() {   C c;   pFunc funcArray[2] = {&C::func1, &C::func2};   (c.* funcArray[0])();}

下面的樣本產生 C2064:

// C2064d.cppstruct C {   typedef void (C::*pFunc)();   pFunc funcArray[2];   void func1(){}   void func2(){}   C() {      funcArray[0] = C::func1;      funcArray[1] = C::func2;   }   void func3() {      (funcArray[0])();   // C2064   }};

可能的解決方案:

// C2064e.cpp// compile with: /cstruct C {   typedef void (C::*pFunc)();   pFunc funcArray[2];   void func1(){}   void func2(){}   C() {      funcArray[0] = &C::func1;      funcArray[1] = &C::func2;   }   void func3() {      (this->* funcArray[0])();   }};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.