You can’t have your cake and eat it too
If you've had your cake, haven't you already eaten it? So why can't you have it and eat it too? It doesn't seem to make sense.
Solution 1:
I'd be surprised if this hasn't been asked on this site already, but this is a rather contested idiom.
First, the order of the phrases is uncertain. If the idiom was derived from the phrase, "You can't eat your cake and have it to," as some have suggested it would make much more sense. If you ate it, you no longer have it.
Second, the verbs accepted today a) may not have been the original verbs used or b) may have had different meanings. In some early mentions of this idiom, "eat" is replaced with "ate."
Third, depending on your understanding of the structure, the current phrasing may be fine. If I said, "You can't have your cake and then eat it," then of course this makes no sense. I believe this is the thinking of most people bothered by this current phrasing. If instead you view the verbs as having to occur concurrently, then the idiom makes more sense. By eating it, you no longer have it. As you eat, the less you have.
Solution 2:
I had heard this idiom for years and didn't understand it until I heard someone translate it from Russian this way:
You can't eat a piece of cake and still keep the cake whole.
When I heard it expressed that way, I suddenly understood the meaning.
Solution 3:
It is a metaphor which could perhaps be better worded for clarity. Especially for a non-native speaker, it must be difficult to understand.
It means that you cannot both have a piece of cake on a plate in front of you, all ready to eat, and also to eat it. For once it is eaten, it is gone.
It is usually applied in circumstances where desirable outcomes are mutually exclusive. Let's say I want to take an holiday in June this year, but I also want to stay around to watch the World Cup. I simply have to choose one or the other. I cannot both have my cake, and eat it.