Идентификатор Undefined C++, хотя у меня есть CPP и файл заголовка
У меня есть main.cpp
файл и кучу других файлов cpp и заголовочных файлов, которые включены в main.cpp
, В заголовочных файлах я использовал #indef
, #define
, а также #endif
в нужном месте, и я также включил заголовочные файлы в main.cpp
, Однако, когда я пытаюсь использовать функцию, которую я сделал в главном файле, она выдает ошибку "Идентификатор (имя-функции) не определен".
Например:
//main.cpp
#include "example.h"
int main(){
foo();
//example.cpp
example::foo(){
//code
}
//example.h
#ifndef EXAMPLE_H
#define EXAMPLE_H
class example{
int foo();
}
#endif
Что я делаю неправильно? Я делаю вещи, которые не нужны?
1 ответ
Вызов foo();
вызывает эту ошибку. Чтобы позвонить example::foo
функция, вам нужен объект типа example
, Как это:
int main() {
example ex;
ex.foo();
}
Вы также должны сделать foo
метод публичный, так что main
можете использовать это:
class example {
public:
void foo();
};
Пример:
Предположим, у меня есть следующая программа:
void foo() { // #1
// typetype codecode;
}
class Example {
public:
void foo();
};
Example::foo() { // #2
// typetype codecode;
}
int main() {
Example ex;
foo(); // #1 gets called
ex.foo(); // #2 gets called on object ex
}
Больше информации:
Чтобы лучше понять такие вещи, вы должны узнать об объектно-ориентированном программировании и классах. Пояснения к ООП включают эти сайты:
Я уверен, что вы можете найти гораздо больше сайтов, объясняющих ООП.