2016-11-11 11 views
-1

Я новичок в C++, так что извиняюсь, если это глупый вопрос. Я пытаюсь создать функцию, которая имеет 3 массива в своем параметре. Я получаю ошибку, что каждый из них не объявляется.Параметры массива C++ внутри функции не объявлены

код в заголовке: #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 

код в основном: #include "header.h" с использованием патезраса;

int main(void){ 
cout << "main has started" << endl; 

PostCode myCode; 
char theRoutingArray[4]; 
char theIdentifier[5]; 
char tempPostCode[8]; 

cout << "Please type in your routing key: " << endl; 
cin.getline(theRoutingArray, 4); 

cout << "Please type in your identifier: " << endl; 
cin.getline(theIdentifier, 5); 

PostCode.postCodeCompare(); 

cout << "main has finished" << endl; 


return 0; 

} 

Любые советы очень ценятся.

+0

Вы не правильно объявлены вклад в ваш метод postCodeCompare, которые выглядят как они предназначены, чтобы быть просто личные члены. Также вы уверены, что хотите добавить указатель в этот метод? Я советую вам перейти на 'std :: string', чтобы получить более четкую функциональность и более простой код. – Nonanon

ответ

0

Совет: прочитайте хорошую книгу на C++, которая объясняет основы. C++ Primer 5th edition - пример.

Вашего синтаксис параметров массива неверно: вы пропустили типа элементов массива в объявлении, и вам не хватает как элемент типа и «синтаксис массива» в определение.

Кроме того, у вас есть несоответствие типа возврата между определением и декларацией.

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

...

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

К сожалению, я все еще получаю ту же ошибку «tempPostCode [] не был объявлен». –

+0

У вас есть несоответствие типа возврата. 'postCodeCompare' объявляется как' void' и определяется как 'int'. Вот [** рабочий пример **] (http://melpon.org/wandbox/permlink/sUcitjYNU9HPZcuH). Пожалуйста, прочитайте книгу на C++! –

 Смежные вопросы

  • Нет связанных вопросов^_^