I disagree, you shouldn't not call yourself a nice guy or gentleman because it may make you seem weak.
If you're a gentleman say so, if you're a nice person say so. Your personality, body language , and actions are what will be saying "I'm a gentleman, and I know that I can rock your world" or you can say you're a nice guy and after she walks by you smack her ass and playfully say "I never said I don't have a bad side

"
I agree about compliments, but they should have meaning behind them. I've been told repeatedly I give great compliments but that's because they are genuine, they don't have to be earned they're just your authentic opinion.