1)Вам надо внимательно изучить в букваре по C главу, посвященную разбивке программы на модули. Файлы .cpp никогда (ну, почти никогда) не включаются в другие .cpp файлы.
2)Ваш объект будет уничтожаться в процессе работы программы? Я полагаю, что поскольку указатель на него используется в прерывании, объект будет жить вечно. Тогда зачем его создавать динамически (через new)?
Вот примерный код:
Main.cppКод
#include "Delay.h"
TimeDelay Delay; // глобальный объект, память выделяется статически на этапе линковки, может быть определен в любом подходящем по смыслу .cpp
int main (void)
{
Тут будет использоватсья Delay или *pDelay, если все же нужен указатель;
...
}
Delay.hКод
#ifndef DELAY_H__
#define DELAY_H__
class TimeDelay
{
...
};
extern TimeDelay Delay;
static TimeDelay* const pDelay = &Delay;
#endif // DELAY_H__
Interrupt.cppКод
#include "Delay.h"
__irq void Interrupt()
{
Тут будет использоватсья *Delay;
...
}