I don't have cheat days really. Any time I go over my allotted calories for a day i roll them over to the next day, so I start that day with that many fewer calories to eat. In that way I'm allowed to binge every now and again, but I always account for all the calories so that I technically didn't deviate from my diet after it all shakes out. I don't really make any distinction about the types of foods that I eat though. If I eat my entire allotment in ice cream, but don't go over, I consider that to not be a "cheat day" because I didn't exceed my designated number of calories. If I go over my designated number of calories, but I spread the excess over the next day or so, I don't consider that a cheat day either because it will average out to be a normal day after I've "paid for it" in the form of a more restricted diet later.
The way that normally works out is that I'll eat a little more than normal on weekends, and then eat a little less during the week to make up for it. I can have stuff like ice cream essentially whenever I want it though, I just have to count it against what I'm allowed to eat. If I run out of calories I stop everything.