Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 313
  • Last Modified:

Passing a struct from 1 C++ Class file to a second C++ Class File

I have this struct

typedef struct                                          // Create A Structure For Star
{
      int r, g, b;                                    // Stars Color
      GLfloat dist;                                    // Stars Distance From Center
      GLfloat angle;                                    // Stars Current Angle
}
stars;                                                // Structures Name Is Stars
stars star[num];                                    // Make 'star' Array Of 'num' Using Info From The Structure 'stars'

which is is the main.cpp file but declared before methods open, and it is altered in the main.cpp, and i want it passed through this line

OnTimer(hDC, texture, loop, num, zoom, tilt, spin); which calls the graphics.cpp file and runs the Ontimer Method,

i also have this declared at the top of the main.cpp file

void OnTimer(HDC hDC, GLuint texture[], GLuint loop, int num, GLfloat zoom, GLfloat tilt, GLfloat spin);                           // Draw OpenGL Scene

as you can see its a OpenGL program which i am trying to create and i just want to pass the struct of veriables from the main.cpp to the graphics.cpp so i can reuse the main.cpp and all i need to do is alter the graphics.cpp file to get a different output of the screen but i cant figure out how to pass the struct from 1 file class t oa second file class
0
jjthorne
Asked:
jjthorne
  • 2
1 Solution
 
Infinity08Commented:
First of all, you'll need to place the definition of the struct in a header file (.h file) :

        typedef struct                                          // Create A Structure For Star
        {
              int r, g, b;                                    // Stars Color
              GLfloat dist;                                    // Stars Distance From Center
              GLfloat angle;                                    // Stars Current Angle
        }
        stars;                                                // Structures Name Is Stars

This header file can then be included in every .cpp file that needs to use the struct.

Second, you'll want to define the global array of these structs in one of the .cpp files :

        stars star[num];                                    // Make 'star' Array Of 'num' Using Info From The Structure 'stars'

If this global array needs to be available in another .cpp file, then you'll need to add this to that other .cpp file :

        extern stars star[num];

which makes the array available for use in that other .cpp file.
0
 
jjthorneAuthor Commented:
ah right yeah, im just getting back into c++, i have been programming in c# and java for the past 4 years, and i decided last weeks to try and get back into C++ and openGL, cheers for the help.
0
 
Infinity08Commented:
Glad to be of assistance. Do not hesitate to ask for clarifications if there are further problems/questions about this.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now