This is why some basic *nix knowledge is good to have...
Permissions are broken into three groups: Owner Group World, except the first character which denotes what type of file it is. For examples, directories have the first character set to 'd'.
Anyways, with your permissions you have: read-write for Owner, read for Group, and read for World. There is no execute bit set.
To fix this, you need to change the permissions of the file using 'chmod'. For example, 'chmod 777' gives rwx permissions to Owner, Group, and World.
These numbers are created from adding up whatever permissions you want.
r = 4
w = 2
x = 1
So, if you want Owner to have rwx, Group to have rx, and World to have to read, you would do 'chmod 754'
You can see the owner and group per file from an ls -l like you did. The first name is the user, and the second is the group. For you, they are both named the same here.
Hopefully this gave you at least a basic understanding of file permissions. If not, I'm sorry. I was watching Parks and Recreation as I wrote this :)
When you are doing the chmod, make sure u put a sudo before if your not root. I used to have this problem to. My problem came because I copied the whole code::blocks file from a windows partition and then it gave me but I fixed it with sudo chmod 755... And now I'm on kali linux as root so no more chmod except for running .sh and a few other types
The file you're trying to compile could be in a folder that is set as read only for a reason
make a new folder on your desktop and open the source file in gedit or what ever editor your using then copy all the code and make a new source file in the folder on your desktop then save and try compile it again
You can use "g++ source.cpp -o program" to name the file rather than having "a.out"
If it was a read-only directory, then the `a.out' file would not be created and the error would read something like `bash: ./a.out: No such file or directory'