2009-11-18 12 views
46

जब मैं अपना सी ++ प्रोग्राम संकलित करता हूं तो मुझे "multiple types in one declaration" त्रुटि क्यों मिलती है?सी ++ "एक घोषणा में एकाधिक प्रकार" त्रुटि

+6

कृपया प्रश्न में कोड दिखाएं –

+17

क्योंकि आपके पास एक घोषणा में कई प्रकार हैं। अगर आपको अच्छी मदद चाहिए, तो हमें कोड चाहिए। –

+1

न केवल कोड दिखाएं, लेकिन कौन सा कंपाइलर बताएं। –

उत्तर

13

आपने एक ही नाम के साथ कुछ कक्षा या दो कक्षाओं में एक ही वैरिएबल को दो बार घोषित किया होगा। उदाहरण के लिए, स्टैक ओवरफ़्लो पर this देखें।

तुम भी एक ; याद किया जा सकता है या आप सिंटेक्स के टूटने के साथ एक वर्ग परिभाषा ...

आप हमें कुछ कोड दिखा सकते हैं, कि बेहतर होगा हो सकता था!

+0

अच्छा अनुमान। छोड़ना ; एक वर्ग परिभाषा के बाद}। – lichenbo

8

मेरा अनुमान है कि आप कक्षा परिभाषा में कहीं बंद होने वाली ब्रेस खो रहे हैं, या उसके बाद अर्धविराम।

122

आप शायद कोड

int float x; 
शायद

class Foo { } float x; 

या इसे और अधिक आम रूप (धनुषाकार कोष्ठक बंद करने के बाद लापता अर्धविराम ध्यान दें)

class Foo { 
    // 
} 

float x; 
+2

वाह, धन्यवाद। यह सिर्फ मेरे साथ हो रहा है, हाहा :) – abelito

+1

मेरे लिए, मैं एक संरचना घोषित करने के बाद अर्धविराम जोड़ना भूल गया। – saccharine

27

है में के बराबर है कि है मुझे भी यही समस्या थी। कभी-कभी त्रुटि रेखा सही जगह नहीं दिखाती है। सभी नए बनाए गए/संशोधित वर्गों के माध्यम से जाएं और देखें कि क्या आप भूल जाते हैं ";" कक्षा defifnition के अंत में।

+0

यह सुझाया गया उत्तर होना चाहिए क्योंकि मुझे यह देखने के लिए एक ही समस्या है कि मैंने जो नए शीर्षकों को शामिल किया था, उनमें एक लापता ";" – OverTheEdge

+0

अन्य ने भी ';' का उल्लेख किया है उदाहरण के साथ विशेष रूप से @Msalters जारी करें। उत्तर के रूप में चिह्नित क्यों नहीं है? –

10

enum घोषणाओं के बाद ; के लिए भी जांचना न भूलें।

class Foo // <-- forgot semicolon 

class Bar { 
    ... 
}; 
4

यहाँ एक अभी तक एक और परिदृश्य है कि इसके अलावा एक ही त्रुटि

struct Field 
{ // <------ Forget this curly brace 
    enum FieldEnum 
    { 
     FIRSTNAME, 
     MIDDLENAME, 
     LASTNAME, 
     UNKNOWN 
    }; 
}; 
6

पॉप अप कर सकते हैं, तो आप एक आगे घोषणा में अर्धविराम भूल गए हैं सकता है। साथ ही, यदि आप इसे देखते हैं, तो ऐप को प्रीप्रोसेस करें और .i "अपमानजनक" नाम की खोज करें। फिर बैक अप देखें। आप अक्सर "}" w/o ";" देखेंगे ऊपर की जगह के साथ पहले गैर-अंतरिक्ष में एक वर्ग पर। समस्या को ढूंढना अक्सर यह जानने से कठिन होता है कि यह क्या है।

2

ऊपर के साथ सहमत:

+0

अभी मेरी स्क्रीन पर, "ऊपर" आपका उत्तर प्रश्न है। सुझाव दें कि आप संपादित करें [संपादित करें] 7 अन्य उत्तरों में से कौन सा यह अतिरिक्त है! – Mogsdad

संबंधित मुद्दे