C++ сложен из-за низкоуровневого управления памятью и множества синтаксических возможностей. Чтобы его понять, начните с базовых концепций и решайте практические задачи. Хорошие русскоязычные сайты:
Metanit.com — подробные уроки и примеры кода.Хабр (Habr) — статьи и руководства по различным аспектам C++.ravesli.com — пошаговое обучение с объяснением основ и задачами.
Сложный из-за обилия возможностей. Он сочетает в себе низкоуровневый и высокоуровневый с развитой технологией ООП языки и, кроме того, является фактически метаязыком, позволяя создавать новые типы данных с новыми операциями над ними.
Потому, что C++ - инструмент для профессионалов, хорошо понимающих, что именно они делают и почему делают именно так. Для новичка C++ - один из худших выборов (хуже только языки с динамической типизацией и C без плюсов).