C++のclassとstructの違いは、デフォがprivateかpublicの違いだけだしな。
C#のよくないところはValueTypeにstructという名前をつけて、誤解する人間を増やしたことだと思う。
C++/CLIみたくvalue classとかそのままvaluetypeでよかったと思うな。