Courteney Cox's boyfriend Johnny McDaid has written a "beautiful" love song about her which only she has heard.