Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AnreyKazakov
Заблокирован
#1

<iostream> зачем тогда объявлять <string>? - C++

07.09.2012, 16:49. Просмотров 524. Ответов 3
Метки нет (Все метки)

вот такой пример, в котором локальная переменная скрывает глобальную, но вопрос то не в этом, почему автор подключил <string>? У меня все работает, если даже я просто <iostream> подключаю (среда Geany, компилятор MinGW)
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
//#include <string> !!!непонятно зачем.....!!!
std::string s1="hello";
int main()
{
std::string s2 = "world";
std::cout<<s1<<" "<<s2<<std::endl;
int s1=18;
std::cout<<s1<<" "<<s2<<std::endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2012, 16:49     <iostream> зачем тогда объявлять <string>?
Посмотрите здесь:

C++ iostream vs iostream.h
C++ <iostream.h>
сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять? C++
C++ iostream.h
iostream.h C++
C++ <iostream.h>
Зачем включать <iostream> и <stdio.h> одновременно? C++
Известно, что число делится на три тогда и только тогда, когда сумма его цифр делится на три. Проверим этот признак для заданного трехзначного числа X C++
Массив: Построить массив из нулей и единиц, в которой bi = 1 тогда и только тогда, когда в i-ой строке матрицы есть хотя бы отрицательный элемент C++
Ошибка iostream и string C++
В чём отличие заголовочных файлов <iostream> и <iostream.h> ? C++
Зачем объявлять прототипы функций? Что даёт прототип? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.09.2012, 17:20     <iostream> зачем тогда объявлять <string>? #2
Это зависит от реализации компилятора. Просто где то в iostream есть включение заголовка с определением класса. В стандарте четко сказано, где находится класс и его функции, не нужно полагаться на реализацию. Например в 2010 студии данный код не скомпилируется скорей всего. Поэтому всегда добавляйте явно необходимый заголовок.
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
07.09.2012, 17:20     <iostream> зачем тогда объявлять <string>? #3
В visual C++, например, в <string> определены операторы вывода в поток и извлечения из потока string. Без включения данного заголовка можно будет создавать и оперировать переменными string, а вот вывести в поток или извлечь из него не получится
AnreyKazakov
Заблокирован
07.09.2012, 17:34  [ТС]     <iostream> зачем тогда объявлять <string>? #4
Спасибо, все ясно, а то маялся, где-то включают авторы в примеры, где то нет класс <string> при работе со строками...
Yandex
Объявления
07.09.2012, 17:34     <iostream> зачем тогда объявлять <string>?
Ответ Создать тему
Опции темы

Текущее время: 20:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru