2017-10-29 4 views
1

Ich war auf einer print() Funktion in C arbeiten ++ und frage mich:Druckfunktion für Arrays - C++

template <typename BaseType> 
void print(BaseType data, bool newline = false, bool raw = false) { 
    // Standard > C Out 
    std::cout << data; 

    /* Logic 
      If 
       Newline is true. 
    */ 
    if (newline) 
     std::cout << std::endl; 
}; 

Was passiert, wenn diese gleiche Funktion unterschiedlich auf Arrays reagieren konnte und aus jedem einzelnen Mitglied des Arrays gedruckt werden, anstatt geben Sie einen Wert wie 0x22fe30 zurück?

Etwas wie:

print("Hello, World!"); // prints "Hello, World!" 
print(array); // prints "[1, 0, 1]" 

Ich mache das nur zum Spaß zu sehen, wie weit meine Fähigkeiten in C++ wirklich sind und freuen uns über jede hilfreiche Antwort. Vielen Dank.

+0

Was Sie suchen ist „Spezialisierung“ bezeichnet. –

+1

Sei vorsichtig, was du dir wünschst. '" Hallo, Welt! "' Ist ein Array vom Typ 'char [14]' –

+0

Wie würde das funktionieren? Ich bin neu in C++ und Autodidakt, dies ist das erste Mal, dass ich von Spezialisierung gehört habe. –

Antwort

0

Sie können in Array iterieren und drucken Sie sie aus:

const int arr [ 3 ] = { 5, 6, 7 }; 

for (int i = 0; i < 3; i++) 

    std::cout << arr [ i ] << std::endl;