30/09/2018, 16:26

Công dụng của con trỏ hàm?

Em đang thắc mắc về công dụng của con trỏ hàm. Cách khai báo và sử dụng thì em biết, nhưng em vẫn chưa hiểu bài tập nào thì ta mới phải dùng con trỏ hàm?

Minh Hoàng viết 18:36 ngày 30/09/2018

công dụng cũng giống như con trỏ khi bạn truyền vào hàm thôi
ví dụ bạn viết 2 hàm toán học, sau đó bạn viết một hàm sử dụng 1 trong 2 hàm toán học ấy(hàm hoàn toàn tương tự chỉ cần thay tên công thức) thì không lẽ bạn lại viết 2 hàm cho 2 công thức, thì khi đó bạn chỉ cần dùng con trỏ hàm trỏ đến vị trí của công thức toán phù hợp và sử dụng thôi, rất ngắn gọn một trong những công dụng của con trỏ hàm(mình biết mỗi cái này thôi ít khi dùng)

Nguyễn Thế Hào viết 18:43 ngày 30/09/2018

Ví dụ của bạn mình thấy nó quá đơn giản. Theo mình nghĩ nó chỉ để dùng hiểu về cách dùng con trỏ hàm thôi, chứ không phải là cách ứng dụng.

Nếu là mình, mình ghi trực tiếp hàm vào tính luôn. Đâu cần phải tạo thêm 1 con trỏ hàm rồi gán hàm vào chi nữa cho nó rắc rối?

Minh Hoàng viết 18:31 ngày 30/09/2018

ví dụ bạn có 100 công thức toán, bạn ghi trực tiếp chăng?

Nguyễn Thế Hào viết 18:33 ngày 30/09/2018

không ghi ra trực tiếp từng hàm thì bạn cũng phải gán con trỏ hàm cho từng địa chỉ của từng hàm thôi

Xin lỗi nếu lời cmt của mình có gì không phải. Mình chỉ muốn tìm hiểu tận gốc vấn đề thôi, không hề có ý tranh cãi hay gây hấn gì đâu

Minh Hoàng viết 18:38 ngày 30/09/2018

gặp câu hỏi thì trả lời thôi mà, có gì đâu bạn.
ví dụ bạn viết một hàm, trong hàm đó bạn dùng hàm đó 100 lần. thì sau này bạn cần sửa tên của hàm đó thì bạn phải chạy đến 100 chỗ để bạn sửa tên đó.
nếu câu trả lời chưa vừa ý thì đành chờ cao nhân vậy
mình nghĩ công dụng của con trỏ hay các tính năng của ngôn ngữ lập trình c/c++ đều phục vụ cho sự tiện lợi, rõ ràng.
mình đọc ở đâu đó là thế này:“các ngôn ngữ lập trình được viết cho lập trình viên, những người cực kì lười biếng”

Lập Trình Sư viết 18:33 ngày 30/09/2018

Con trỏ hàm công dụng có 2 cái chính:

  1. Định danh tham chiếu, hay gọi là Interface kiểu hàm. Các ngôn ngữ bậc cao thì có khái niệm Interface; nhưng trong C/C++ không có? Trong C sẽ sử dụng qua con trỏ hàm, C++ có thể sử dụng qua virtual class (abstract)

  2. Callback. Trong Java hay gọi là Listener, C# tương đương là delegate, trong các ngôn ngữ khác gọi là closure. Con trỏ hàm trong C/C++ sử dụng làm callback khá nhiều.

Nói xuông thì không được, các bạn lao hẳn vào lập trình Windows API, MFC hay lập trình Linux là thấy rõ rệt nhất.
Còn làm rồi mà vẫn ko hiểu? Vậy thì đi làm thực tế vài năm sản phẩm, dự án thật rồi dần dần sẽ hiểu.

Bài liên quan
0