N_Cortex : pour revenir au SUJET, tu ne peut pas passer une string à printSDL car ça doit être du C et ça ne gère pas les objets et surtout pas ceux de la bibliothèque standard.
Si tu veux vraiment utiliser des string plutot que des chaines utilise la propriété c_str() des string pour obtenir une chaine de caractère C.
tu peut faire ça :
PrintSDL(font,screen,650,20,"arme : %d", p.arme.c_str());