Giả sử tôi tuyên bố mẫu nhưng không bao giờ tham chiếu nó trong C++. Liệu trình biên dịch có làm bất cứ điều gì với nó trong thực thi? Nó có chiếm bất kỳ bộ nhớ nào không?Mẫu C++ có sử dụng bộ nhớ nếu nó không bao giờ được tham chiếu không?
Trả lời
Không, không có mã nào được tạo cho mẫu chức năng không bao giờ được khởi tạo. Ngoài ra, không có mã nào được tạo ra cho một hàm thành viên không phải mẫu của một mẫu lớp không bao giờ được gọi.
Cụ thể, kích thước tệp thi hành của bạn sẽ không lớn hơn bất kỳ thời gian chạy nào cũng như không xảy ra.
(trừ khi bạn khởi tạo nhanh mẫu lớp) – aschepler
Không, không.
Lớp và chức năng mẫu không phải là các lớp hoặc chức năng thực tế: Chúng là hướng thay thế cho trình biên dịch về cách tạo ra một số loại lớp và chức năng nhất định. Khi bạn tham khảo một mẫu, trình biên dịch, sử dụng mẫu để tìm ra cách tạo mã nguồn và biên dịch mã được tạo ra, một lần cho mỗi tham số khác nhau của mẫu.
Chi phí duy nhất để sử dụng mẫu là một chút thời gian biên dịch bổ sung, không có vấn đề lớn đối với bất kỳ máy tính nào được tạo bất cứ lúc nào sau thập niên 1980.
Ok cảm ơn điều đó có ý nghĩa – Iowa15
No. (15characters) – user7116