2008-12-12 11 views
40

Tôi có một chức năng gọi là:lĩnh vực biến hoặc tuyên bố vô hiệu

void initializeJSP(string Experiment) 

Và trong tập tin MyJSP.h của tôi, tôi có:

2: void initializeJSP(string Experiment); 

Và khi tôi biên soạn tôi nhận được lỗi này:

MyJSP.h:2 error: variable or field initializeJSP declared void

Sự cố ở đâu?

+1

Trình biên dịch trỏ đến dòng mã nào khi báo cáo lỗi đó? Ngôn ngữ của bạn đang sử dụng là gì? Mã nào khác xung quanh hàm đang được đề cập? Thêm thông tin, xin vui lòng. –

Trả lời

60

Nó ví dụ xảy ra trong trường hợp này ở đây:

void initializeJSP(unknownType Experiment); 

Hãy thử sử dụng std::string thay vì chỉ string (và bao gồm các <string> tiêu đề). Các lớp thư viện chuẩn C++ nằm trong không gian tên std::.

26

Điều này không thực sự là một vấn đề với chức năng là "void", nhưng là một vấn đề với các tham số chức năng. Tôi nghĩ rằng nó chỉ là g + + đưa ra một thông báo lỗi vô ích.

+4

Vấn đề với thông số chức năng là gì? (Tôi biết câu trả lời được chấp nhận giải thích nó, tôi chỉ không tìm thấy câu trả lời cụ thể này đặc biệt hữu ích). – Dukeling

-1

Cái này là, khi bạn gọi một hàm bạn không nên viết các loại chức năng, có nghĩa là bạn nên gọi funnction giống như

initializeJSP (string Thử nghiệm);

+1

Ví dụ của bạn là sai, bạn không thể gọi chức năng với một loại như một tham số và câu hỏi là về cái gì khác. – Logman

+0

Bạn nói đúng, một cái gì đó như 'void func (int a);' không phải là một cuộc gọi hàm. Nhưng OP có một vấn đề khác. – HolyBlackCat

+0

Tôi không nghĩ đó là ý nghĩa của OP. –