כי במקרה של string למשל
גישה ל c_str (שהוא מורש מbasic_string::c_str) מונעת גישה לאופרטור >> שיכול להיות שעושה משהו שונה. במקרה הספציפי אומנם התוצאה זהה, אבל אפשר בקלות להתרגל לגשת ישירות לנתון הגולמי שהמחלקה מייצגת, ולפספס הרבה overloadים שהמחלקה הזאת מביאה איתה. עקרונית, שימוש ב basic type ב CPP (שזה לצורך העניין ה c_str) לא מומלץ, אם הנתון בה בצורה של אובייקט ממחלקה מסוימת. זה פשוט מפספס את כל המטרה בלהשתמש במחלקה.