Salve a tutti ho un problema con programmino che sto realizzando per l'esame di fisica computazionale.
classe neutron.h
#ifndef NEUTRON_H
#define NEUTRON_H
#include<cmath>
using namespace std;
class Neutron
{
public:
Neutron(double x0,double y0, double z0, double vx, double vy,double vz):x0_(x0),y0_(y0),z0_(z0),vx_(vx),vy_(vy),vz_(vz){}
double getx0() const {return x0_;};
double gety0() const {return y0_;};
double getz0() const {return z0_;};
double getvx() const {return vx_;};
double getvy() const {return vy_;};
double getvz() const {return vz_;};
void change(double xn, double yn , double zn) { x0_= xn; y0_=yn; z0_=zn; };
private:
double x0_,y0_,z0_,vx_,vy_,vz_;
};
#endif
classe distribuzione.h
#ifndef DISTRIBUTION
#define DISTRIBUTION
#include<cmath>
#include"neutron.h"
using namespace std;
class Mdistribution
{
public:
void Mvelocity( Neutron *n);
};
#endif
e il file cc che voglio compilare
#include <iostream>
#include <string>
#include <cmath>
#include <stdlib.h>
#include <time.h>
#include "neutron.h"
#include "distribuzione.h"
using namespace std;
void Mdistribution::Mvelocity( Neutron *n)
{
srand(time(NULL));
double T,vx,vy,vz,v;
v=rand();
cout<<v<<"valore di v"<<endl;
vx=rand()%2*v;
vy=rand()%2*(v-vx);
vz=(v-vx-vy);
void n->change(vx,vy,vz);
}
l'errore che mi da il terminale è
distribuzione.cc: In member function ‘void Mdistribution::Mvelocity(Neutron*)’:
distribuzione.cc:23:8: error: expected initializer before ‘->’ token
Non metto mano al c++ da un po' quindi sono un po' arruginito probabilmente è una cosa banale ma non riesco a correggerla. Grazie