OP: no, you're wrong. You don't learn programming by looking at someone else's completed answer, you learn by doing. That's why the course presents a series of programming exercises for you to complete, rather than just going "Lesson 1, here look at this completed code. Lesson 2, here look at this completed code" and so on. So I'll help you fix the code, but I'm not going to write it for you.

Most of your CTime.cpp is wrong; this file is just for the definition of the CTime class so you don't need any of the io stuff or a main function. I don't know why you've started a CTime::time() function; this is not in the class definition.

What you need to do in CTime.cpp is pretty much already spelled out in detail:

1.2.2 (Implementation CTime.cpp)
* #include file CTime.h
* place the noninline member function add in a separate file, CTime.cpp

So do you know how to declare a non-inline member function? (Hint: it's exactly the same as an inline member function except (a) for the inline keyword and (b) it doesn't go in the header file.)

Your definition in the header of add is slightly wrong:

declare add as a member function with CTime return and a CTime parameter

but you wrote:

inline int CTime::add(CTime) { return CTime }

which has an int return instead of a CTime return, and while it has a CTime parameter that parameter has no name. Also this function (a) is inline, which is not required and (b) has a function body, so when you declare the function in CTime.cpp you will get a duplicate symbol error. The function add() should just be a prototype.