私は基本的に C# に挑戦しようとしている C++ の男です。C# の基本的なチュートリアルから、すべてのオブジェクトが動的に作成および格納され (Java の場合も同様)、参照によってアクセスされるため、コピー コンストラクターは必要ないことがわかりました。オブジェクトを関数に渡したり、関数からオブジェクトを返したりするときにも、ビットごとのコピーは必要ありません。これにより、C# は C++ よりもはるかに単純になります。
ただし、参照を介して排他的にオブジェクトを操作すると、実行できる操作の種類に制限が課され、プログラマーが完全に制御できなくなることをどこかで読みました。制限の 1 つは、オブジェクトをいつ破棄できるかをプログラマが正確に指定できないことです。
誰かが他の制限について詳しく説明してもらえますか? (必要に応じてサンプルコード付き)