I'm hoping someone here can help me with this situation:
Code:
class A
{
public:A(int a, int b);
};
I need to have an object of class A that doesn't have a default constructor in another class, B:
Code:
class A; //This is in a separate header file
class B
{
private:A a;
};
The problem is that it won't compile without a default constructor. I'm not allowed to define a default constructor, and the A object in class B has to be private so I can't initialize A a in public.
I also can't change the prototype in the interface to something like
A(int a = 0, int b = 0);
since one of the requirements is that if an object of class A is declared in main, it must not compile due to not having a default constructor.
So what can I do to make class B work and compile?
Another question I have is why is this valid:
Code:
class A; //#include "A.h" is in the implementation file so it compiles.
class B
{
private:A* a;
};
But not this:
Code:
class A;
class B
{
private:A a;
};
This is for a project that I probably won't be able to turn in on time, but I care more about how to do this right than turning it in for full points. I'll be thankful for any help given.