I have following classes.

```
class A
{

public:

void fun();

}

class B: public A
{

}

class C: public A
{

}

A * ptr = new C;

```

Is it ok to do something like below? Will i have some problems if introduce some virtual functions in the baseclass?

```
((B *)ptr)->fun();

```

This may look stupid, but i have a function that calls A's function through B and i don't want to change that.