class Receiver:public Task { ... private: //override long Process(); private: ... }; long Receiver::Process() { ... } class Task{ ... private: ... virtual long Process()=0; ... }; inline Task * Task::TaskExec(Thread *ThisThread) { ... long l_retval =-10000; ... try{l_retval =Process();}catch(...){} // ? ... } I do not understand how the function Receiver :: Process () is called in the project. Searched through (ctrl + shift + f), found only use in Task :: TaskExec (). Is it possible to call the Process () function, which is virtual (= 0)?