سؤال

ولدي وظيفة تسمى:

void initializeJSP(string Experiment)

وفي ملف MyJSP.h بلدي لدي:

2: void initializeJSP(string Experiment);

وعندما تجميع أحصل على هذا الخطأ:

<اقتباس فقرة>   أعلن متغير أو الحقل initializeJSP الفراغ

:

وMyJSP.h: 2 خطأ

وأين هي المشكلة؟

هل كانت مفيدة؟

المحلول

وعلى سبيل المثال يحدث في هذه الحالة هنا:

void initializeJSP(unknownType Experiment);

وحاول استخدام std::string بدلا من string فقط (وتشمل رأس <string>). دروس المكتبة القياسية C ++ هي ضمن std:: مساحة الاسم.

نصائح أخرى

وهذه ليست في الواقع مشكلة مع الوظيفة "باطلة"، ولكن المشكلة مع المعلمات وظيفة. اعتقد انها مجرد ز ++ يعطي رسالة خطأ غير مفيدة.

والشيء هو أنه عند استدعاء دالة يجب أن لا يكتب نوع وظيفة، وهذا يعني يجب عليك الاتصال funnction تماما مثل

initializeJSP(Experiment);

وقدموا إجابات أخرى الردود دقيقة للغاية، وأنا لست متأكدا تماما ما كان بالضبط مشكلتك (إذا كان مجرد نتيجة لنوع غير معروف في البرنامج ثم كنت قد حصلت على العديد من اضحة أخطاء قطع جنبا إلى جنب مع واحد ذكرتم) ولكن لإضافة على مزيد من المعلومات يتم رفع هذا الخطأ أيضا إذا أضفنا نوع وظيفة والفراغ في حين استدعاء الدالة كما يمكنك انظر أدناه:

#include<iostream>
#include<vector>
#include<utility>
#include<map>
using namespace std;
void fun(int x);
main()
{
   int q=9;
   void fun(q); //line no 10
}
void fun(int x)
{
    if (x==9)
        cout<<"yes";
    else
        cout<<"no";
}

خطأ:

 C:\Users\ACER\Documents\C++ programs\exp1.cpp|10|error: variable or field 'fun' declared void|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

وهكذا كما نرى من هذا المثال هذا السبب يمكن أن يؤدي أيضا إلى "متغير أو الحقل إعلان بطلانه" خطأ.

هل وضع باطلا حين استدعاء الدالة بك؟

وعلى سبيل المثال:

void something(int x){
    logic..
}

int main() {

    **void** something();

    return 0;

}

وإذا كان الأمر كذلك، يجب حذف الفراغ الماضي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top