Well, I may be biased, but I have a different perspective.
I think C++ is perceived as hard and C# as easy mainly because the tools and libraries used during development. C# has much much better support than plain old C++ in Visual Studio when designing user interface. Also, there is one (tens of megabytes big) core library for C#, but nothing like that for C++. Many C++ developers fear STL and even if they don't, it is only basic algorithms and you may run into binary compatibility if you use it in module interfaces. There is no "one" GUI framework (and MFC sucks).
When actually writing code, C++ does pretty well. In C++11+STL, you don't have to use new/delete at all. You get safety, efficiency and predictability (compared to garbage collection). But how much time is actually spent writing code? When working in C# on a simple tool, I would say that not much. Most of the code is generated and managed for you by the IDE and you only need to fill in a few gaps. That is something no tool currently does for C++ and that is why is it perceived as difficult. If you had to type everything the C# IDE does for you manually, the picture would be different.
Of course, it is easy in C++ to start writing bad code, but is is now also easy to write good one.