コンパイルされないC++の次のコードがあります。
class Container;
class Container
{
std::string m_Name;
Container m_Container;
};
これは、同じタイプのメンバーがあり、コンパイラーがここでオブジェクトのサイズを推測できないためです。
C#を使用してこれを機能させる理由は何ですか?
namespace Sample
{
public class Container
{
public string m_Name;
public Container m_Container;
}
}
namespace Sample
{
class Program
{
static void Main(string[] args)
{
Container con = new Container();
}
}
}
これはC#で正常にコンパイルされます。ここでオブジェクトのサイズはどのように計算されますか?