Rtc_by_Makuna sketch won't compile

I'm adding a DS3231 RTC to an existing project comprising 7 files in the one sketch and using a Neopixel ring and MPU9150 accelerometer. I selected the Rtc_by_Makuna library as having one or two slightly more useful examples than another library I tried (and have now deleted).

The DS3231_Simple example compiles and runs, and I used it to set the RTC. However, when I transplant the key bits into the first file of my sketch it won't compile.

In my sketch I have:

#include <Adafruit_NeoPixel.h>

#define DISCOBADGE
#define PARTICLES
#define CLOCK
#define MONITOR // Monitor output to serial port? (Errors are always output)

// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#include <Wire.h>

// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include <I2Cdev.h>
#include "MPU6050.h"
#include "math.h"
#include "EEPROM.h"

#ifdef CLOCK
#include <RtcDS3231.h>
RtcDS3231<TwoWire> Rtc(Wire);
[color=red]Rtc.Begin();[/color]
#endif

On the last line above in red I get an error "Rtc does not name a type". Maybe some clash of libraries but I've tried reordering things without success. If I comment out the #define CLOCK it compiles just fine as it always did.

And while I've got your ear, what is the syntactic meaning of on the previous line? Having learned my C from K&R some 30+ years ago I don't know how to parse it. (Once again, Arduino's C++ petticoats are showing!)

The

Rtc.Begin();

line must be in your setup() routine. It must not be outside setup() (or maybe loop()) as the IDE constructs the source code for the compiler in a special way.

Mega thanks - that's fixed it!

(One of these days I'll get my head around OO programming - it wsn't a thing when my brain was at its keenest.)