Không, điều này không chính xác.
Chính là một chức năng đặc biệt và có những yêu cầu nghiêm ngặt đối với nó (thậm chí nghiêm ngặt hơn chức năng thông thường), nhưng bạn cũng đang gây nhầm lẫn giữa hàm là gì và con trỏ trỏ đến hàm nào.
Vấn đề logic là có sự khác biệt giữa hàm và biến chứa con trỏ trỏ đến hàm (bạn muốn chính). Một hàm có địa chỉ cố định trong bộ nhớ, do đó, để gọi một hàm mà địa chỉ được gọi đơn giản. Một con trỏ đến một hàm điểm đến một địa chỉ trong bộ nhớ, do đó, để gọi hàm bạn cần trước tiên để đọc những gì con trỏ trỏ đến và sau đó gọi địa chỉ đó.
Một con trỏ tới hàm có mức độ khác nhau của tính không xác định từ một hàm.
Cú pháp giống nhau ... tức là nếu x
là con trỏ đến hàm bạn có thể viết x(42)
, nhưng mã máy được tạo khác nếu x
thay vào đó là hàm (trong trường hợp con trỏ, giá trị phải được tra cứu và địa chỉ cuộc gọi được xác định tại thời gian chạy, với một hàm địa chỉ được cố định - lên để di dời - và được xác định tại thời gian liên kết).
Tôi thích cách bạn đang cố gắng sử dụng các tính năng mới nhất, tuyệt vời nhất, nâng cao của C++ 11, nhưng vẫn nhấn mạnh vào việc sử dụng 'cstdio' và' printf' :-) – paxdiablo
@paxdiablo: printf rocks !!! C++ không thành công tại các luồng I/O :) –
Theo Stroustroup ... nếu C cho phép bạn bắn vào chân, C++ có thể thổi tất cả các chân của bạn ra! Đây là điều tôi gọi là ... tình trạng bạo dâm! :-)) –