Hi,

I am really struggling with instantiating objects inside other objects in general but in particular I am trying to get the bounce.h and FastLED libraries working.

I'm starting with the bounce.h library as I feel it should be straight forward.

Candlerack.h

Code:
/*
  ========== CandleRack.h ============
  Candle Rack to hold animated Candles with
  Pushbuttons to operate. Rob Hilken, March 2016
*/

// ensure this library description is only included once
#ifndef CandleRack_h
#define CandleRack_h

class CandleRack
{
  public:

    CandleRack(byte candleRackStatus);
    void begin();
    void pushButton();
    void selectRandomCandle();
    void turnOnCandle(byte candlePosition);
    void burnCandlesForMs();
    void fadeOutCandle(byte candlePosition);

  private:
    Bounce _debouncePushButton;
    byte _pushButtonPin; 
    byte _previousState;
    byte _candleRackStatus;    
    byte _candlePosition;
    byte _candleStatus[];
    elapsedMillis _candleTimeElapsed;
    unsigned int _candleOnForMs;
};
#endif
cpp file

Code:
/*
  ========== CandleRack.h ============
  Candle Rack to hold animated Candles with
  Pushbuttons to operate. Rob Hilken, March 2016
*/

#include "Arduino.h"
#include <FastLED.h>
#include <elapsedMillis.h>
#include <Bounce.h>
#include "CandleRack.h"

#define NUM_LEDS 50

CandleRack::CandleRack(byte candleRackStatus)
{
  _candleRackStatus = candleRackStatus;
}

void CandleRack::begin()
{ 
  randomSeed(analogRead(0));

 // FastLED.addLeds<WS2811, LED_PIN, RGB>(leds, NUM_LEDS);
 // FastLED.setBrightness( BRIGHTNESS );
 // fill_solid(leds, NUM_LEDS, CRGB::Blue);
 
  _pushButtonPin = 3;
  _debouncePushButton = Bounce(_pushButtonPin, 20); 
  _previousState = HIGH; 
  _candleOnForMs = 20000;
  pinMode(_pushButtonPin, INPUT_PULLUP);

  Serial.println("Begin Complete");  // Debug ************************
}


void CandleRack::pushButton()
{
  // Look for a button push
  if (_debouncePushButton.update())
  {
    if (_debouncePushButton.fallingEdge())
    {
      selectRandomCandle();
    }
  }
}


void CandleRack::selectRandomCandle()
{
  byte randomCandlePosition;
  do
  {
    randomCandlePosition = random(0, NUM_LEDS);
  }
  while (_candleStatus[randomCandlePosition] != 0);
  
  Serial.print("Button Pushed: ");  // Debug ************************
  Serial.println(randomCandlePosition);  // Debug ************************
  
  turnOnCandle(randomCandlePosition);
}


void CandleRack::turnOnCandle(byte _candlePosition)
{
  // leds[_candlePosition] = CRGB::Red;
  _candleStatus[_candlePosition] = 1;
}


void CandleRack::burnCandlesForMs()
{
  // See if it is time to turn the candle off
  for (byte b = 0; b < NUM_LEDS; b++)
  {
    if (_candleTimeElapsed > _candleOnForMs && _candleStatus[b] == 1)
    {
      CandleRack::fadeOutCandle(b);
      _candleTimeElapsed = 0;
    }
  }
}


void CandleRack::fadeOutCandle(byte _candlePosition)
{
 // leds[_candlePosition] = CRGB::Black;
  _candleStatus[_candlePosition] = 0;
}
sketch:

Code:
/*
  ========== Votive Gambler ============
  Votive Candle Donations Box
  Interactive audio visual sculpture
  by Rob Hilken, March 2016
*/

#include "Arduino.h"
#include <FastLED.h>
#include <elapsedMillis.h>
#include <Bounce.h>
#include "CandleRack.h"

CandleRack MyCandleRack(0);

void setup() {
  delay(3000); // sanity delay
  
  Serial.begin(9600);
  while (!Serial); 
  
  Serial.println("Setup Starts");  // Debug ************************
  
  MyCandleRack.begin();
  
  Serial.println("Setup Complate");  // Debug ************************
}

void loop() {
  
  MyCandleRack.pushButton();
  MyCandleRack.burnCandlesForMs();

  FastLED.show();
}
Error:

Code:
Arduino: 1.6.7 (Windows 10), TD: 1.27, Board: "Teensy 3.2 / 3.1, Serial, 96 MHz optimized (overclock), US English"

In file included from C:\Users\jay-jay\AppData\Local\Temp\builddda6eeb7b86b477f5785b2788d5e8008.tmp\sketch\CandleRack.cpp:8:0:
C:\Users\jay-jay\Documents\Dropbox\Arduino\libraries\FastLED-3.1.0/FastLED.h:12:2: warning: #warning FastLED version 3.001.000 (Not really a warning, just telling you here.) [-Wcpp]
#warning FastLED version 3.001.000  (Not really a warning, just telling you here.)
^
C:\Users\jay-jay\AppData\Local\Temp\builddda6eeb7b86b477f5785b2788d5e8008.tmp\sketch\CandleRack.cpp: In member function 'void CandleRack::begin()':
CandleRack.cpp:29: error: invalid use of member function (did you forget the '()' ?)
_debouncePushButton = Bounce(_pushButtonPin, 20);
^
C:\Users\jay-jay\AppData\Local\Temp\builddda6eeb7b86b477f5785b2788d5e8008.tmp\sketch\CandleRack.cpp: In member function 'void CandleRack::pushButton()':
CandleRack.cpp:41: error: '((CandleRack*)this)->CandleRack::_debouncePushButton' does not have class type
if (_debouncePushButton.update())
^
CandleRack.cpp:43: error: '((CandleRack*)this)->CandleRack::_debouncePushButton' does not have class type
if (_debouncePushButton.fallingEdge())
^
exit status 1
'((CandleRack*)this)->CandleRack::_debouncePushButton' does not have class type

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
If I can get some help with this I think it will help with a few other problems I am having...

Using FastLED in a library seems to be a bigegr challenge which I'll leave for now

Thanks for an help or guidance!

Rob