Sự khác biệt giữa liên kết tĩnh và động
![Sự khác biệt giữa liên kết tĩnh và động - Công Nghệ Sự khác biệt giữa liên kết tĩnh và động - Công Nghệ](https://a.fondoperlaterra.org/technology-differences/difference-between-static-and-dynamic-binding.jpg)
NộI Dung
- Biểu đồ so sánh:
- Định nghĩa của Binding tĩnh
- Triển khai liên kết tĩnh trong C ++ với một ví dụ về quá tải
- Phần kết luận:
Liên kết liên kết của một định nghĩa hàm ’với một hàm call gọi hàm hoặc một liên kết của một giá trị’ giá trị với một biến số, được gọi là ‘ràng buộc. Trong quá trình biên dịch, mọi định nghĩa hàm ’được cung cấp một địa chỉ bộ nhớ; Ngay sau khi gọi chức năng được thực hiện, điều khiển thực hiện chương trình sẽ di chuyển đến địa chỉ bộ nhớ đó và nhận mã chức năng được lưu trữ tại vị trí đó được thực thi, đây là Binding của chức năng gọi hàm đến định nghĩa hàm Định nghĩa. Ràng buộc có thể được phân loại là ràng buộc liên kết tĩnh và ’ràng buộc động.
Nếu nó đã biết trước thời gian chạy, hàm nào sẽ được gọi hoặc giá trị nào được phân bổ cho một biến, thì đó là một ràng buộc tĩnh. nếu nó được biết trong thời gian chạy, thì nó được gọi là binding ràng buộc động.
- Biểu đồ so sánh
- Định nghĩa
- Sự khác biệt chính
- Phần kết luận
Biểu đồ so sánh:
Cơ sở để so sánh | Liên kết tĩnh | Liên kết động |
---|---|---|
Sự kiện xảy ra | Các sự kiện xảy ra tại thời điểm biên dịch là "Liên kết tĩnh". | Các sự kiện xảy ra trong thời gian chạy là "Liên kết động". |
Thông tin | Tất cả thông tin cần thiết để gọi một hàm được biết tại thời điểm biên dịch. | Tất cả thông tin cần gọi một chức năng đến để biết trong thời gian chạy. |
Lợi thế | Hiệu quả. | Uyển chuyển. |
Thời gian | Thi công nhanh. | Thực hiện chậm. |
tên thay thế | Binding sớm. | Ràng buộc muộn. |
Thí dụ | Chức năng gọi quá tải, toán tử quá tải. | Hàm ảo trong C ++, ghi đè các phương thức trong java. |
Định nghĩa của Binding tĩnh
Khi trình biên dịch thừa nhận tất cả thông tin cần thiết để gọi một hàm hoặc tất cả các giá trị của các biến trong thời gian biên dịch, nó được gọi làliên kết tĩnhSọ. Vì tất cả các thông tin cần thiết đều được biết trước khi chạy, nó làm tăng hiệu quả của chương trình và nó cũng giúp tăng tốc độ thực hiện của chương trình.
Liên kết tĩnh làm cho một chương trình rất hiệu quả, nhưng nó làm giảm tính linh hoạt của chương trình, vì ‘các giá trị của biến và hàm gọi hàm Gọi được xác định trước trong chương trình. Liên kết tĩnh được thực hiện trong một chương trình tại thời điểm mã hóa.
Quá tải một hàm hoặc một toán tử là ví dụ về đa hình thời gian biên dịch, tức là Binding tĩnh.
Triển khai liên kết tĩnh trong C ++ với một ví dụ về quá tải
#inc loại Ở đây, giá trị của con trỏ thay đổi khi chương trình đang được thực thi và giá trị của con trỏ quyết định hàm lớp nào sẽ được gọi. Vì vậy, ở đây, thông tin được cung cấp trong thời gian chạy, cần có thời gian để liên kết dữ liệu làm chậm quá trình thực thi. Tuy nhiên, chúng tôi kết luận rằng khi chúng tôi có kiến thức trước về các giá trị của biến và gọi hàm, chúng tôi áp dụng ràng buộc tĩnh. Ngược lại, trong Binding động, chúng tôi cung cấp tất cả thông tin tại thời điểm thực hiện.
Phần kết luận: