This is true indeed. For making "small viruses" I use notepad (as a text editor), and create batch files. Those can be programmed as viruses, but for that you have to learn the specific syntax.
This is not a virus, just a simple example of batch syntax:
1 2 3 4 5
msg * "Trojan Loading"
shutdown -s -t 60 -c "Your computer is shutting down..."
Just save that as "name.bat", and when you run it your PC will show the message and shut down your PC in 60 seconds. Though, batch viruses can be programmed to activate themselves in specific environments and situations. Like auto-spreading itself by email and auto-run itself on peoples personal computers.
If it is so complicated to "attach a c++ program to a file", then how can i create a program, like an executable(or shortcut) that runs, lets say, My Computer, and it also does some nasty things like deleting the icons from a desktop?
When you create a program that runs other programs you have not attached it to anything. It's a program that you made, and when it runs it asks the operating system to please run some other programs or do some other things. That's it. It has not been attached to anything.