My code porting principles!

Identify entities and their relationships

Start with UML class diagram. You should get the picture and recognize leaf classes that should be easily ported.

Create classes with state (variables)

Implement functionalities of porting code at once is impossible. However, state of classes should be precisely captured before the code starts messing with implementations.

Fill method of classes only what you need first

Better porting code by scenario if possible.

But, start with constructor/destructor!

Constructor and destructor are important and usually have less code than general methods.