As I read from some online examples structures should work like this:
This code doesn't link good:Code:struct nameOfStruct { int myMember1; short myMember2; }; int main() { nameOfStruct myInstance; myInstance.myMember = 444; return 1; }
Undefined reference to nameOfStruct::myMember1
First question, why?
So i found some example and "repaired" my code:
Now code compiles well.Code:struct nameOfStruct { int myMember1; short myMember2; }; int nameOfStruct::myMember1; int main() { nameOfStruct myInstance; myInstance.myMember = 444; return 1; }
As my application developed, I came to the point when I must make this type (structure) visible to multiple units. So i tried to do this:
Code://Structures.h struct nameOfStruct { int myMember1; short myMember2; }; int nameOfStruct::myMember1;Code://Functions.h void Function1(nameOfStruct myStructArgument);Code://Functions.cpp #include "Structures.h" void Function1(nameOfStruct myStructArgument) { //code }And so i get linker error: Multiple definition of nameOfStruct::myMember.Code://Main.cpp #include "Structures.h" #include "Functions.h" int main() { nameOfStruct myInstance; Functions1(myInstance); myInstance.myMember = 444; return 1; }
Second question, why?
Thanks for help![]()




Reply With Quote
