@MaximTimoff

Разница между двумя конструкциями?

В чём заключается дифференциальный фактор между этими двумя?

cout << "Hello, World!";

// и

cout << string("Hello, World!");
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
stiicky
@stiicky
cout << "Hello, World!"; использует перегрузку operator<< связанная с массивом символов, заканчивающимся нулем "hello", который представляет собой const char[6], на const char* при передаче в качестве аргумента operator<< :
template< class CharT, class Traits >
basic_ostream<CharT,Traits>& operator<<( basic_ostream<CharT,Traits>& os,
                                         const char* s );


cout << string("Hello, World!"); использует оператор<< перегрузка для работы со строками. 
string - это typedef для std::basic_string<char, std::char_traits<char>, std::allocator<char>>.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы