So I have two files for which I need to turn, call them: example.cc and example.h < / P>
We have been told that their test code will only contain "example.h". I usually include the example # example "example.cc" because it will already include example example.h is.
When I run the test code, I just get "an unspecified reference for example: Example ..", whenever I mention the example in the test code, it is clearly because the test The code can only see my delcarations in example.h, not their actual implementation.
What am I missing? I have included example.cc in Example #, but this is clearly not correct.
It appears that your professor has some other type of file, called Professor_man.cc , And they will compile this project like this:
g.+ example.cc professor_main.cc -o project in their professor_main.cc One line will be
#include "example.h" and also use some of your functions, and potential tests that they are doing the right thing Are:
std :: cout & lt; & Lt; (Example_add (2,3) == 5)? "Good": "Bad" & lt; & Lt; Std :: endl; Now, if they do not include #home.h, or if you have not created that file correctly, they will get a compilation error at professor_main.cc, Because it is not about example_add (int, int), the important line header should be in the file and it removes this error:
int example_add (int a, int b); This is called Function Declaration.
If everything has been done properly, but your professor has made a mistake and tried to compile the project without an example. In this way:
G ++ Professor_man.cc-o project Then they should have an "undefined reference" about a linker < / Em> error will be found "example_add (). What is missing definition : int example_add (int a, int b) { Return a + b;} This should be in your example.cc file, and if the professor also includes that on their compilation command line, everyone should be well.
However, if you enter # example "example.cc" in your header file Effectively, you then copy and pasted example example.cc in professor_main.cc, because it's #included in but it's clearly still in your file, example.cc so if Your professor tried to do this: g ++ example.cc professor_main.cc -o project make them a several definitions < Error from linker / em>, because function example_add () is defined by twice << p> Generally, then, what you probably should do in your source file (.cc) Definitions and all your functions in your header file (.h) announcements someone other. Try compiling it with a cc file and use it to see how it works.
No comments:
Post a Comment