Умение отвечать на два баянных вопроса:
-Чем отличается абстрактный класс от интерфейса
-Почему в С++ нельзя бросать исключение в деструкторе (да, именно в такой формулировке, выдающей, что вопрошающий сам ни в зуб ногой).
А если серьезно, это умение хорошо проектировать объектную структуру приложения, которое выражается в знании того, что вообще с классами можно делать, как организовывать их отношения между собой, и как это делать не надо. Достигается многочасовым практическим опытом.
Интересная статья:
Как два программиста хлеб пекли.