+ 1

Passing a function between files

I'm trying to pass a validate function from the main.cpp to a class file, Charecter.cpp . When I try this it says that the function was not defined in this scope. I could create the class all in the main.cpp all that, but I'm trying to organize the program and keep things unclutered. Any help?

4th Apr 2017, 7:25 PM
JustSomeGuy
JustSomeGuy - avatar
5 Answers
+ 1
Well, first I don't know if it is just a typo but it should be #ifndef (why would you define something already defined?). Then you have to verify that your files have this strucure: //file_class.h #ifndef CLASS_H_ #define CLASS_H_ #include <iostream> using namespace std; class MyClass{ private: type attribute1; type attribute2; ... public: type method1(); type method2(); ... }; #endif ------------------------------------------------------------- //file_class.cpp #include "file_class.h" type MyClass::method1(){ //implementation } type MyClass::method2(){ //implementation } ... And in your main file you just need to include the header file. Also I didn't write them but is always good to add a constructor and a destructor for your class.
4th Apr 2017, 8:34 PM
Orlando
Orlando - avatar
0
can you give the details of which are your source and header files and what is in each one of them? Best prectice is having a header with the definition and a source file with implementation, then you just include the .h in your main
4th Apr 2017, 7:34 PM
Orlando
Orlando - avatar
0
Just the standard ones from the tutorial. created a class which made Character.h and Character.cpp. main.cpp has #include "Character.h" and #include <iostream> at the moment, plan on adding more as needed. Character.h has had nothing changed, so #ifdef CHARACTER_H and #define CHARACTER_H. Character.cpp has #include "Character.h" and #Include <iostream>
4th Apr 2017, 7:41 PM
JustSomeGuy
JustSomeGuy - avatar
0
//file_main.cpp #include "file_class.h" #include <iostream> type Function(){ /*code*/ } int Main(){ MyClass Example; return 0; } ---------------------------------------------------------------------------------------------------- //file_class.h #ifndef CLASS_H_ #define CLASS_H_ #include <iostream> using namespace std; class MyClass{ private: type attribute1; type attribute2; ... public: MyClass(); type method1(); type method2(); ... }; #endif ---------------------------------------------------------------------------------------------------- //file_class.cpp #include "file_class.h" MyClass::MyClass(){ type Function(); //from the main file ... } ---------------------------------------------------------------------------------------------------- The purpose I'm trying to get across is that I call a function that I'll be using throughout the entire program, not just inside a single class
4th Apr 2017, 9:19 PM
JustSomeGuy
JustSomeGuy - avatar
0
Ok haha. Well... then you just have to add #include "main.cpp" in your file_class.cpp
4th Apr 2017, 9:59 PM
Orlando
Orlando - avatar