The object SodaMachine contains an array of DrinkInfo objects named drinks. The constructor for 'class SodaMachine' must explicitly initialize the member 'drinks', but there's no default constructor for DrinkInfo objects.
I think your DrinkInfo struct should look like this:
struct DrinkInfo
{
string name;
double price;
int numDrinks;
DrinkInfo()
{
name = "unknown";
price = 0.00;
numDrinks = 0;
}
DrinkInfo(string n, double p, int numD)
{
name = n;
price = p;
numDrinks = numD;
}
};
Alternatively, if you've got an up-to-date compiler, I think you can present the SodaMachine constructor with an initialiser list, but the syntax is probably a bit fiddly.