de cout et de concaténation de chaînes

Je viens de revoir mes C++. J'ai essayé de faire ceci:

#include <iostream>

using std::cout;
using std::endl;

void printStuff(int x);

int main() {
    printStuff(10);
    return 0;
}

void printStuff(int x) {
    cout << "My favorite number is " + x << endl;
}

Le problème se produit dans le printStuff fonction. Quand je le lance, les 10 premiers caractères de "Mon numéro préféré est ", est omis de la sortie. La sortie est "numéro" e " est ". Le nombre n'a même pas de se présenter.

La façon de résoudre ce problème est de faire

void printStuff(int x) {
    cout << "My favorite number is " << x << endl;
}

Je me demande ce que l'ordinateur/le compilateur fait en coulisses.

InformationsquelleAutor t3hdaniel | 2016-09-29