The area is a product of the other member variables.
If you always recompute it (in function call), you know that it matches the data.
If you do have it as separate member variables, then
1) Your objects use more memory (in your example at least 50% more)
2) All methods that update the other member variables, have to ensure that the area is updated
3) You don't have to recompute the area when it is queried
If the computation would be complex, and area would be queried way more often than the object changes, then it could make sense to cache the value in a member.