如果我有像成員函數調用 - 我可以在沒有對象的情況下訪問它嗎?
class MyClass
{
public:
void callMe()
{
cout << "called";
}
};
template< void (MyClass::*callFunc)() > struct A
{
void A_call()
{
callFunc();
}
};
int main(int argc, char *argv[])
{
struct A <&MyClass::callMe> object;
object.A_call();
}
這並不編譯,因爲它說:「callFunc:術語不計算爲服用0參數的函數」。
不是類成員函數的編譯時常量嗎?
咦?無論模板語法如何,您打算如何在沒有對象的情況下調用非靜態成員函數? – 2013-03-02 16:24:15
這在多層次上沒有任何意義,但要回答您的直接問題:函數不是C++中的第一類對象,因此請求函數爲常量是沒有意義的。 – 2013-03-02 16:27:49