I've started working in C# recently and it came to my attention that C# does not allow private virtual functions (PVF). This confused me a great as PVFs are a pinnacle part of having a non virtual interface (http://www.gotw.ca/publications/mill18.htm)
You're still allowed to create protected virtual functions, but this exposes the ability to call them from derived classes. After looking around I found this http://stackoverflow.com/questions/3082310/why-are-private-virtual-methods-illegal-in-c
The answer proposes that the only way private virtual methods would be useful is in nested classes... Thought? I'd mention this on a C# forum but it'd sound a bit too much like troll bait.