Đây là thêm một sự tò mò hơn bất cứ điều gì khác ...Trình biên dịch lưu trữ các phương thức cho các lớp C++ ở đâu?
Giả sử tôi có một lớp C++ Kitty như sau:
class Kitty
{
void Meow()
{
//Do stuff
}
}
Liệu các nơi trình biên dịch mã cho Meow() trong mỗi trường hợp của Kitty?
Rõ ràng lặp lại cùng một mã ở mọi nơi đòi hỏi nhiều bộ nhớ hơn. Nhưng mặt khác, việc phân nhánh đến một vị trí tương đối trong bộ nhớ lân cận đòi hỏi ít hướng dẫn lắp ráp hơn là phân nhánh tới vị trí tuyệt đối trong bộ nhớ trên các bộ vi xử lý hiện đại, vì vậy điều này có khả năng nhanh hơn.
Tôi cho rằng đây là chi tiết triển khai, do đó các trình biên dịch khác nhau có thể hoạt động khác nhau.
Xin lưu ý rằng tôi không xem xét các phương pháp tĩnh hoặc ảo tại đây.
Hãy sẵn sàng cho sự tấn công của câu trả lời cho câu hỏi thường gặp (mặc dù +1, nó * là * một câu hỏi hay :)) .. –
Để làm rõ, tôi không quan tâm đến nội tuyến. Tôi biết cách hoạt động. – Mashmagar