I have a question about pure virtual functions. I am not clear about how it works and when we need to use pure virtual functions. This is the example that I do not understand:

```
file.h

class A
{
public :
            A();
            ~A();

            virtual void func1(void) = 0;
            virtual UINT32 func2(void) = 0;
            UINT32 initialize(void) = 0;
}

file.cpp

UINT32 A:initialize (void)
{
            func1();
            func2();
            return (result);
}

```

Can anyone explain in detail what this example actually does and what the result is?
I really appreciate your help and knowledge. Thank you very much.