Want to understand code of RTC DS3231

Object instantiation (create the object in memory) requires that we provide the I2C signal pins.

There are other ways this can be done, but generally speaking we do NOT want global variables to infiltrate our private object classes. It can also be done with importing name spaces, but we really, really try and not do that with Arduino.

Many Arduino libraries are written to NOT need default I2C pins UNLESS the intent is to override, this creates a library with "overloaded operators" which is an aspect of OOP and a very powerful way of dealing with all the various pinouts of the Arduino chipsets.