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

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

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

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

07.09.2012, 16:49. Просмотров 545. Ответов 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> и <stdio.h> одновременно? - C++
Не первый раз встречаю такой код: #include &lt;stdio.h&gt; #include &lt;iostream&gt; В этом что, есть какой-то сакральный смысл?

Ошибка iostream и string - C++
Добрый день! при сборке проекта, ругается на стандартные iosteam.h и string.h, причем до этого все работало отлично. подскажите,...

Массив: Построить массив из нулей и единиц, в которой bi = 1 тогда и только тогда, когда в i-ой строке матрицы есть хотя бы отрицательный элемент - C++
Даны натуральное число n, действительная квадратная матрица порядка n. Построить последовательность b1, b2, …, bn из нулей и единиц, в...

Как объявлять двумерный динамичсекий массив - C++
Как объявлять двумерный динамичсекий массив? Я нашел вот такой код, но не могу его понять Поясните пожалуйста, как работает слеующий...

Можно ли объявлять объекты в заголовочном файле? - C++
main.cpp #include &quot;aa.h&quot; int main(int argc, char** argv){ return 0; } aa.h #ifndef e2_H_ #define e2_H_ int a=0; #endif...

Как объявлять двумерный динамический массив - C++
Доброго времени суток. При выделении памяти для динамического двумерного массива с разным количеством строк и столбцов, под что сначала...

Как объявлять и инициализировать динамические структуры? - C++
С помощью операции new нужно создать массив из трёх элементов структуры. Пытался это сделать, но возникают проблемы из присваиванием...

Как правильно объявлять struct переменную? - C++
Как правильно объявлять? str one или struct str one; #include &lt;iostream&gt; using namespace std; struct str { int a; int b; ...

Где лучше эти переменные объявлять? - C++
Посмотрите пожалуйста на следующий код (код сишный, но компилировался как C++, так как в чистом Си нет ООП... Но не это меня в данном...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 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>?
Ответ Создать тему
Опции темы

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