Use of Properties

Get to learn about the use of properties.

Properties are not absolutely necessary

We saw in the previous lesson how Rectangle can be used as if it has a third member variable. However, regular member functions could also be used instead of properties:

Press + to interact
import std.stdio;
import std.math;
struct Rectangle {
double width;
double height;
double area() const {
return width * height;
}
void setArea(double newArea) {
auto scale = sqrt(newArea / area);
width *= scale;
height *= scale;
}
}
void main() {
auto garden = Rectangle(10, 20);
writeln("The area of the garden: ", garden.area());
garden.setArea(50);
writefln("New state: %s x %s = %s",
garden.width, garden.height, garden.area());
}

Further, as we already know, these two functions could even have the same names:

double area() const {
    // ...
}
void area(double newArea) {
    // ...
}

When to use properties

It may not be easy to choose between regular member functions and properties. Sometimes, regular member functions feel more natural, and sometimes properties do.

However, as you have seen in the ...