C++ is a programming language. It will do whatever you tell it to. It sounds like you are more concerned (at this stage of the project) about the hardware interface. Personally I would do this with a PIC, running assembly language. With a high level language you will loose timing accuracy. If you use assembly, you will be able to determine exactly what your time interval is.
Set up a timer in the PIC to start counting on the rising edge of the input signal and stop on the falling edge. Then just read the timer value out of the micro at teh end of it. With 80Hz input and a 5% duty cycle, this is an ON time of 625us. Even with a 32kHz crystal, this will give you 20 counts. If you increase the clock speed, you will get better accuracy, but will need a larger register in the micro.
That is the way I would go