Hey all,
I’m just wondering if anyone managed to solve the topic in chapter 8 on the advanced course. After some work, I managed to get the, ahem, ‘basic’ one to work
The basic example is to be able to add an integer to a custom class (in this video, length) such as;
Length third = first + 4;
Mosh says to create a new overload taking an integer as the parameter. I found this really difficult
I tried declaration;
Length operator+(const int other) const;
with a definition of
Length Length::operator+(const int other) const
{
return int(value);
}
but of course, we can’t do that as 'no suitable constructor exists to convert in to Length. So then I tried
Length Length::operator+(const int other) const
{
return Length((int (value)));
}
but this doesn’t reference the other value so for
Length first{ 10 };
Length second{ 20 };
int four = 4;
Length third = first + 4;
cout << third;
the answer is 10.
I finally tried
Length Length::operator+(const int other) const
{
return Length((int (value))+ other);
}
and this works!!
But I really can’t get past the excercise and I dn’t really understand the question. I think we have to add Point(x,y) to a second Point(x,y) as well as the integers? (I think?)
Anyway, I tried, but could not get my head around this, with using 2 parameters. All of my trials were a disaster, so there’s no point in me even posting them. I was hoping someone who completed this exercise would be able to share the solution?