РепТеч — новости технологий

  • Главная
  • Карта сайта

8

Фев

Языки С++ и Java, дружественные классы (2я часть)

В языке Java все объекты передаются по ссылкам, в то время как в C++ по умолчанию осуществляется передача объектов по значению. В Java, в отличие от C++, автоматического приведения типов не происходит; хотя новые функциональные возможности языка Java, такие как обобщения и автоупаковка, охватывают многие распространенные варианты приведения типов. Все методы в Java являются виртуальными, то есть реализация метода выбирается в соответствии с типом объекта, а не с типом ссылки. В C++ методы нужно явно объявлять как виртуальные. В Java определены размеры базовых типов данных, в то время как в C++ они зависят от конкретной реализации.

Если у вас есть унаследованный С-код и требуется высокая производительность, язык C++ имеет определенные преимущества, особенно при необходимости низкоуровневого доступа к системе. Если же наиболее важными факторами являются переносимость, безопасность и скорость разработки, лучше выбрать Java.
Дружественные классы

Ключевое слово friend, указанное с функциями или классами, дает дружественной функции или классу доступ к закрытым членам класса, в котором находится объявление. Некоторые программисты считают, что данный механизм противоречит принципам объектно-ориентированного программирования, так как позволяет классу работать с закрытыми членами другого класса. Это может привести к неожиданным ошибкам, когда изменение внутренней реализации класса становится причиной проблем с имеющим к нему доступ дружественным классом.
Однако в некоторых случаях выгоды от дружественных классов перевешивают их недостатки. К примеру, представьте реализацию класса такого динамического массива, в котором отдельный класс способен по очереди обращаться к элементам этого массива. Такой класс-итератор может корректно функционировать только при наличии доступа к закрытым членам класса динамического массива. Значит, имеет смысл объявить итератор другом класса массива. Поскольку работа этих двух классов неразрывно связана друг с другом, не стоит бессмысленно настаивать на их разделении.

Читайте также: Новости России и мира.

Возможно заинтересует:

  • Плазмонные нанопузырьки помогут уничтожить раковые клетки
  • Индия заявила о своем первенстве в ряде важных открытий
  • Парад под метеорным дождем
  • Микропроцессор нового поколения сделает смартфоны доступными
  • Японская армия показала робота-шпиона

Свежие записи

  • Плазмонные нанопузырьки помогут уничтожить раковые клетки
  • Индия заявила о своем первенстве в ряде важных открытий
  • Парад под метеорным дождем
  • Микропроцессор нового поколения сделает смартфоны доступными
  • Японская армия показала робота-шпиона

Архивы

  • Май 2025
  • Апрель 2025
  • Март 2025
  • Февраль 2025
  • Январь 2025
  • Декабрь 2024
  • Ноябрь 2024
  • Октябрь 2024
  • Сентябрь 2024
  • Август 2024
  • Июль 2024
  • Июнь 2024
  • Май 2024
  • Апрель 2024

Последние записи

  • Плазмонные нанопузырьки помогут уничтожить раковые клетки
  • Индия заявила о своем первенстве в ряде важных открытий
  • Парад под метеорным дождем
  • Микропроцессор нового поколения сделает смартфоны доступными
  • Японская армия показала робота-шпиона
  • Эти захватывающие дух русские изображения Земли…
  • Найдена уязвимость в личных сообщениях в Twitter
  • Последователи Radiohead – бесплатная музыка становится модной?
  • Галлюцинационная система России оказалась неэффективной
  • НАСА вложит 270 млн. $ в частные космические корабли.
  • Случайные записи

    • tune.ru — для тех, кто любит музыку
    • Google будет активно развивать голосовой поиск
    • В Лондоне появится «жирная» электроэнергия
    • Россия захотела продать Турции Су-57
    • Мировой кризис, связанный со старением населения планеты, начнется уже в 2030 году
    • Тест: лучший смартфон для дома
    • Физики из ФИАН получили новый сверхпроводник
Все права защищены © 2024 РепТеч — новости технологий.