1) Очень хорошая и свободная документация
2) Очень хороший разработчик коммерческие и бесплатные инструменты
3) хорошая сертификация и учебные ресурсы
4) хорошие и бесплатные инструменты во время выполнения
5) хорошее профилирование и контроль инструментов
6) очень хорошие варианты поддержки от различных компаний
7) очень хорошее сообщество разработчиков ПО с открытым исходным кодом с огромным количеством библиотек
Хотя указатели являются ссылками, «ссылка» в c ++ обычно относится к практике тегирования параметра SomeType & amp;
.Что вы никогда не должны делать. Единственное место, где это уместно, - это магический синтаксис, необходимый для реализации различных предопределенных операторов. В противном случае:
Вы никогда не должны передавать параметры по ссылке - передавать по указателю, в противном случае вы делаете проверки кода практически невозможными. Передача по ссылке делает невозможным определить путем проверки вызова, какие параметры можно ожидать изменить.
Вы никогда не должны передавать параметр по ссылке. Опять же, это означает, что вы выполняете мета-оптимизацию. Вы всегда должны просто передавать по значению, иначе вы виновны в том, что заглянули внутрь объекта, изучили его реализацию и решили, что передача по ссылке предпочтительнее по какой-то причине.
Любой класс c ++ должен реализовывать все конструкторы копирования и присваивания и перегрузки, необходимые для передачи по значению. В противном случае он не выполнил свою задачу по абстрагированию программиста от деталей реализации класса.