小编Ole*_*nov的帖子

成员函数指针和继承

我需要解决这个问题.有一个基类和两个继承的类.基类包含需要函数指针作为参数的方法.但是这些函数是在继承的类中定义的.

class CBase;

typedef bool (CBase::*FPredicate)();

class CBase
{
public:
    CBase() {}
    ~CBase() {}
protected:
    //this method waits until 'predicate' is true or until 'timeout' ms. passed
    //and returns true if 'predicate' is true eventually
    bool WaitEvent(FPredicate predicate, int timeout)
    {
        bool result = false;
        int time1 = GetTickCount();
        int time2;

        bool isEnd = false;
        while(!isEnd)
        {
            result = isEnd = (this->*predicate)();              

            time2 = GetTickCount();
            if(time2 - time1 > timeout && !isEnd)
                isEnd = true;
        }
        return result;
    }
}; …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance member-function-pointers

9
推荐指数
1
解决办法
945
查看次数