Tôi đã viết đoạn mã sau:C++ - Các câu hỏi về con trỏ hàm
#include "stdafx.h"
#include <iostream>
using namespace std;
double funcA()
{
return 100.0;
}
int g(double (*pf)())
{
cout << (*pf)() << endl;
return 0;
}
int g2(double pf())
{
cout << pf() << endl;
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
g(&funcA); // case I
g(funcA); // case II
g2(funcA); // case III
g2(&funcA); // case IV
return 0;
}
tôi đã chạy mã ở trên vào VS2008 và mỗi lần gọi hàm lợi nhuận '100'. Đây là câu hỏi:
Q1> Có vấn đề gì trong mã không?
Q2> Dường như C++ không tạo sự khác biệt giữa * pf và pf. Đúng không?
Cảm ơn bạn
+1 cho một câu hỏi rất rõ ràng. –
bạn cũng có thể sử dụng tuyên bố của g với cơ thể của g2 – UncleZeiv
Tôi đề nghị hướng dẫn này về các con trỏ hàm: http://www.newty.de/fpt/index.html .. nó rất kỹ lưỡng – Jack