Проблема в том, что вы пытаетесь использовать дочерний класс до того, как он будет определен. Вам нужно реорганизовать свой код следующим образом:
class child;
class parent
{
public:
int nop;
child *ptr;
void input();
};
class child: public parent
{
public:
int y;
};
void Parent::input()
{
int x,nop=0;
child c;
*(ptr+nop) = c;
cout<<"Enter number";
cin>>x;
nop++;
c.y=x;
cout<<*(ptr+nop).x;
}
Теперь parent::input
определено после class child
.
У вас много и много других проблем в вашем коде, но это следует исправить. один из них, и пусть вы добьетесь прогресса в других.