In the following code, I would like to add new default argument 'z' to 'func' method without modifying subclasses. I get error C2259: 'CTest' : cannot instantiate abstract class error. 

Is there anyway to do this without modifying all subclasses?

```
class ITest
{
public:
    virtual void func(int x, int y, char c, int z = 1) = 0;
};

class CTest : public ITest
{
public:
    void func(int x, int y, char c)
    {
    }
};

```