I’m learning c++. I have written a small program which should compute the energy
of a N particle system. Up to now I have three small files:
data.h:
class Particle {
public:
double mass;
double charge;
double posx,posy,posz;
};
Particle part[2];
main.cpp:
#include <iostream>
#include "data.h"
using namespace std;
double energy(Particle part );
int main ()
{
double sd;
part[0].mass = 10.0;
part[4].mass = 90.0;
cout << part[0].mass << "\n";
cout << part[4].mass << "\n";
sd = energy(part);
cout << "sd" << sd << "\n" ;
return 0;
}
energy.cpp:
#include <iostream>
using namespace std;
double energy(Particle part)
{
cout << part[0].mass << "\n";
double dummy;
dummy = 2.0;
return (dummy);
}
I have two questions:
1)I want to make visible the Class particle in the function “energy”. In other words,
I want to use the variables of the class function (with the values given in “main”)
in the energy function.
I have tried as you see energy(Particle part) but it seems Particle is not defined
in that scope.
2)As you see in “data.h” I declared “part” as an array with two members. However,
in “main” I can use more than two members, for instance part[3],part[4]… Why I
could use more members than those I declared?
I am compiling with g++ -o test energy.cpp main.cpp
thanks.
If I understand you right.. You want to have
to be use able in main.cpp and in energy.cpp ?
If yes.. change this to:
and in energy.cpp add this:
and you will be able to use
Because it’s C/C++ ? no range checks. You can do what ever you want.
But if you do, the result will be unexpected.