I have two classes
class a {
public:
a(int i);
};
class b {
public:
b(); //Gives me an error here, because it tries to find constructor a::a()
a aInstance;
}
How can I get it so that aInstance is instantiated with a(int i) instead of trying to search for a default constructor? Basically, I want to control the calling of a's constructor from within b's constructor.
You need to call a(int) explicitly in the constructor initializer list:
Where 3 is the initial value you'd like to use. Though it could be any int. See comments for important notes on order and other caveats.
Just use a constructor which is defined like this:
Use an initialization list:
I think you should use a pointer to 'a' like:
This way you will have defined behaviour. Of course you will need to free *aInstance in the destructor.