Multiple Constructors
multiple-constructors.pde
/**
* Multiple constructors
*
* A class can have multiple constructors that assign the fields in different ways.
* Sometimes it's beneficial to specify every aspect of an object's data by assigning
* parameters to the fields, but other times it might be appropriate to define only
* one or a few.
*/
class Spot {
public:
float x, y, radius;
// First version of the Spot constructor;
// the fields are assigned default values
Spot() {
radius = 40;
x = width*0.25;
y = height*0.5;
}
// Second version of the Spot constructor;
// the fields are assigned with parameters
Spot(float xpos, float ypos, float r) {
x = xpos;
y = ypos;
radius = r;
}
void display() {
ellipse(x, y, radius*2, radius*2);
}
};
Spot* sp1;
Spot* sp2;
void setup() {
size(640, 360);
background(204);
noLoop();
// Run the constructor without parameters
sp1 = new Spot();
// Run the constructor with three parameters
sp2 = new Spot(width*0.5, height*0.5, 120);
}
void draw() {
sp1->display();
sp2->display();
}