Sharing blueprint function between actor/Pawn/Character classes

I understand the snippet code and macros and am using it across the board but when implementing larger functions that are shared ,isn’t class inheritance the way to go instead of using the same macro everywhere ?