Bonsoir à tous,

J'étudie le livre Accelerated C++ et j'en suis au Chapter one , vraiment très intéressant.

J'ai presque tout compris le fonctionnement de ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>
 
int main()
{
    std::cout << "What's your first name ? :" ;
    std::string name;
    std::cin >> name;
 
    const std::string message = "Hello " + name + "!" ;
    const std::string espaces(message.size(), ' ');
 
    const std::string second = "* " + espaces + " *";
 
    const std::string first(second.size(), '*');
 
 
    std::cout << std::endl ;
    std::cout << first << std::endl;
    std::cout << second << std::endl;
 
    std::cout << "* " << message << " *" << std::endl;
    std::cout << second << std::endl;
    std::cout << first << std::endl;
 
    return 0;
}
La seule chose que j'ai du mal c'est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
const std::string espaces(message.size(), ' ');
(message.size(), ' ');

-size est ce quelque chose d'intégrer et non une simple variable ?

Le fonctionnement de ce code serait donc :

espaces de type string vaut un entier qui est égal à la longueur de message par ' ' ?

Comment cela se fait il que message.size() compte le nombres de caractères/espaces alors qu'il n'y a pas de boucle pour parcourir la chaine ?

Merci