Simulator
is supposed to carry a copy of Missile
object inside it. But Missile
has no public constructor with zero parameters, so I'm not able to pass it as parameter.
I'm using Visual Studio 2010, and it gives the following errors:
Error 1 c:...\simulator.cpp Line #5 error C2248: 'Missile::Missile' : cannot access private member declared in class 'Missile'
Error 2 c:...\simulator.cpp Line #4 IntelliSense: "Missile::Missile()" (declared at line 11 of "c:...\Missile.h") is inaccessible
So, how do I pass object of a class who has private constructor as argument?
(Note: My code has no entry point. I'm just trying to compile this as a library.)
Missile.h
#ifndef MISSILE_H
#define MISSILE_H
class Missile
{
public:
Missile(double xm0, double ym0, double Vmx0, double Vmy0);
~Missile();
private:
Missile(); // Line #11
};
#endif
Missile.cpp
#include "Missile.h"
Missile::Missile(double xm0, double ym0, double Vmx0, double Vmy0)
{
}
Missile::Missile()
{
}
Missile::~Missile()
{
}
Simulator.h
#ifndef SIMULATOR_H
#define SIMULATOR_H
#include "Missile.h"
class Simulator
{
public:
Simulator(const Missile & missile);
~Simulator();
private:
Missile m_Missile;
};
#endif
Simulator.cpp
#include "Simulator.h"
Simulator::Simulator(const Missile & missile)
{ // Line #4
m_Missile = missile; // Line #5
}
Simulator::~Simulator()
{
}