#c 14
#c 14
Вопрос:
Я создаю базовую программу для составления списка, состоящего из объектов на c , я несколько раз просмотрел код и просто застрял, мой профессор не отвечает, и мне скоро придется включить это, если кто-нибудь может помочь мне найти, почему он говорит, что getTotal2020()
не определено, когда ясно, что это так. Я компилирую со всеми файлами, и #include также присутствует во всех файлах.
Я пробовал разные способы доступа к этому методу, но каждый раз он выдает ошибки. По крайней мере, насколько у меня есть код сейчас, у меня нет никаких ошибок.
class Data {
public:
Data(string neighborhood, int total2020, int numOfMen, int numOfWomen);
string neighborhood;
int total2020;
int numOfMen;
int numOfWomen;
~Data();
string getNeighborhood();
int getTotal2020();
int getNumOfMen();
int getNumOfWomen();
};
Data::Data(string neighborhood, int total2020, int numOfMen, int numOfWomen) {
this->neighborhood;
this->total2020;
this->numOfMen;
this->numOfWomen;
}
string getNeighborhood(string neighborhood){
return neighborhood;
}
int getTotal2020(int total2020){
return total2020;
}
int getNumMen(int numOfMen){
return numOfMen;
}
int getNumOfWomen(int numOfWomen){
return numOfWomen;
}
class Node{
public:
Node* next;
Data* data;
Node(Node* next, Data* data){
this->next = next;
this->data = data;
}
Node* getNode(){
return next;
}
Data* getData(){
return data;
}
};
void List::findElement(int findMinPop){
Node* aux;
aux = head;
while(aux){
if(aux->getData()->getTotal2020() >= findMinPop){
cout << "The population is greater" << endl;
} else {
cout << "The populations is less than you were looking for" << endl;
}
aux = aux->next;
}
}
Ошибка заключается в том, что я:
/tmp/ccJeheba.o:main.cpp:(.text 0x3ed): referencia a `Data::getTotal2020()' sin definir (that the method is not defined)
/tmp/ccJeheba.o:main.cpp:(.text 0x3ed): reubicación truncada para ajustar: R_X86_64_PC32 contra el símbolo `Data::getTotal2020()' sin definir
collect2: error: ld devolvió el estado de salida 1
Комментарии:
1. Вы определяете глобальную функцию ,
getTotal2020
не являющуюся членом. Вы правильно определилиData
конструктор, используя правильную область видимости, что заставило вас сделать это неправильно для всех других функций-членов?2. Хорошо, просто разобрался, если кто-нибудь может сказать мне, почему я должен поместить метод get внутри }; спасибо
3. @Someprogrammerdude что я сделал не так?
4. Вам не обязательно помещать функции встроенным образом в определение класса, все, что вам нужно сделать, это добавить в префикс имени имя класса и оператор области видимости. Как и в
int Data::getTotal2020(int total2020){...}
Вы должны были видеть, что это делается раньше, в книгах или руководствах или в вашем классе. Вы даже делаете это самостоятельно с помощьюData
constructor (Data::Data
).5. когда я пытаюсь напечатать окрестности, я просто получаю пробелы, это результат, в котором население меньше, чем вы искали // здесь должно быть соседство, Население меньше, чем вы искали // и здесь население меньше, чем вы искали // и здесь