avi1234
avi1234

Reputation: 63

"identifier is undefined" when calling function from a header file

All I'm trying to do is create a separate class to hold my Hello World function (this is for a class), but I am getting an "identifier is undefined" compiler error. What is the issue?

Here is my main function (helloworld.cpp):

#include <iostream>
using namespace std;

int main() {
    print_me();
    system("pause");
    return 0;
}

And here is the header class (helloworld.h) :

#include <iostream>

void print_me() {
    std::cout << "Hello World\n";
}

Upvotes: 0

Views: 9243

Answers (1)

MxNx
MxNx

Reputation: 1374

You have not included helloworld.h in helloworld.cpp. The following code should work:

#include <iostream>
#include "helloworld.h" 

using namespace std;

int main() {
     print_me();
     system("pause");
     return 0;
}

One thing to remember is from your compiler's point of view, there is no connection between the two files unless you specify it. The fact that both files have the same name does not have any significance for compiler.

Side note 1: Consider using include guards in your header files. For simple projects, it may not be obviously necessary but for larger projects, not using them can lead to annoying ambiguous compilation errors.

Side note 2: Implementing function bodies in header files is generally discouraged.

Upvotes: 2

Related Questions