2016-11-11 5 views
-1

Ich bin neu in C++ so Entschuldigung, wenn das eine dumme Frage ist. Ich versuche, eine Funktion, die 3 Arrays in seinem Parameter zu erstellen. Ich bekomme den Fehler, dass keiner von ihnen deklariert wird.C++ Array-Parameter innerhalb der Funktion nicht deklariert werden

Code in Header: #ifndef ADDRESSMODEL #define ADDRESSMODEL #define ADDRESSDEBUG

#include <iostream> 
#include <string.h> 


using namespace std; 
class PostCode 
{ 
public: 
    PostCode(void); 
    ~PostCode(); 
    void postCodeCompare(tempPostCode[], theRoutingArray[], theIdentifier[]); 

private: 

    char theRoutingArray[4]; 
    char theIdentifier[5]; 
    char tempPostCode[8]; 
}; 

inline PostCode :: PostCode(void) 
{ 
    strcpy(theRoutingArray, "000"); 
    strcpy(theIdentifier, "0000"); 
    cout << "Debug constructor called" << endl; 
} 

inline PostCode :: ~PostCode() 
{ 
    cout<< "Destructor" << endl; 
} 

inline int PostCode :: postCodeCompare(tempPostCode, theRoutingArray, theIdentifier) 
{ 
    char postCode[] = theRoutingArray + theIdentifier; 
    if (postCode[0] == tempPostCode[0]){ 
     cout << 1 << endl; 
    } 
    else{ 
     cout << 0 << endl; 
    } 
} 



#endif 

-Code in main: #include "header.h" using namespace std;

Jeder Rat wird sehr geschätzt.

+0

Sie haben nicht richtig Eingaben Ihre postCodeCompare Methode deklariert, die aussehen, als wären sie nur Ihre privaten Mitglieder gedacht sind. Sind Sie auch sicher, dass Sie in dieser Methode einen Zeiger hinzufügen möchten? Ich rate Ihnen, zu 'std :: string' zu wechseln, um eine klarere Funktionalität und einfacheren Code zu erhalten. – Nonanon

Antwort

0

Hinweis: lesen Sie ein gutes C++ Buch, das die Grundlagen erklärt. C++ Primer 5th edition ist ein Beispiel.

Ihre Syntax für die Array-Parameter ist falsch: Sie fehlt die Typ der Array-Elemente in der Erklärung, und Sie fehlt sowohl das Element Typ und die „Array-Syntax“ in der Definition.

Darüber hinaus haben Sie eine Rückgabetypkonflikt zwischen der Definition und der Deklaration.

void postCodeCompare(char tempPostCode[], char theRoutingArray[], char theIdentifier[]); 

...

inline int PostCode :: postCodeCompare(
    char tempPostCode[], char theRoutingArray[], char theIdentifier[]){ /*...*/ } 
+0

Leider bekomme ich immer noch den gleichen Fehler "tempPostCode [] wurde nicht deklariert". –

+0

Sie haben auch einen Fehlertyp des Rückgabetyps. 'postCodeCompare' wird als' void' deklariert und als 'int' definiert. Hier ist [** ein funktionierendes Beispiel **] (http://melpon.org/wandbox/permlink/sUcitjYNU9HPZcuH). Bitte lesen Sie ein C++ Buch! –

Verwandte Themen