Pointers and printing to Serial and a tft

I was looking for a way to print some info to both Serial, Serial1 and a tft. I wanted to place everything in a function and make it readable as well. I wrote this little example script that works, I just wanted to check with the guru's if this is "semantically" correct and if Print is the right class to use.

#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
// For the Adafruit shield, these are the default.
#define TFT_DC 9
#define TFT_CS 10
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

Print *CurrentOutput;

void setup() 

  char astring[] = "Look behind you!";
  CurrentOutput = &tft;

  CurrentOutput = &Serial;  
  println_to(CurrentOutput,"you didn't did you?");  

void loop() 


void println_to(Print *output, char *string)
  if (output == &tft) 

    yield(); // Yield refreshes the display of the tft and if not used the display will not our string

looks ok to me

maybe the Adafruit_ILI9341 class should implement the yield after each print/println

I think they did it so you can have several printlns before you do a "yield"