Mã oop chính xác như thế nào tôi viết bằng C++ hoặc C# ví dụ dịch sang mã máy hoặc trong trường hợp C# thành bytecode? Ý tôi là, làm thế nào để các đối tượng dịch?Mã hướng đối tượng chuyển thành mã máy như thế nào?
Trong lập trình thủ tục, nó khá rõ ràng nó trông như thế nào sau khi biên dịch bởi vì có một cách thực sự hỗ trợ cho các chức năng trong ngôn ngữ máy. Nhưng trong trường hợp lập trình oop thì không có đối tượng nào trong ngôn ngữ máy.
Lý thuyết của tôi là nó biên dịch đối tượng thành một kiểu C như struct chỉ chứa dữ liệu (không có hàm thành viên) và khi hàm memeber được gọi, nếu chấp nhận tham số addional là cấu trúc dữ liệu của đối tượng chinh no. Tôi có đúng không?
Và còn trường hợp C++ thì sao? Cả hai người trong số họ nên nhìn vào cùng một cấu trúc hoặc bộ nhớ bố trí cuối cùng không? Có thể có nhiều cách để làm điều này? Bởi vì ví dụ bạn có thể có cấu trúc này với các chức năng là tốt nhưng tôi không chắc vì nó tốn nhiều bộ nhớ hơn nếu các đối tượng trùng lặp các chức năng giống nhau trên một lần nữa. – UnTraDe
Viết chương trình "thế giới ảo". Biên dịch nó với gcc -o hw hw.c. Vấn đề objdump -d hw. Đó là cùng một câu chuyện, những thay đổi chỉ là tên công cụ và hướng dẫn cụ thể. IOW cpu mục tiêu là khác nhau: nó ảo trong .net, thực trong C++. –