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

Почему выводит адреса? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа со стеком. http://www.cyberforum.ru/cpp-beginners/thread397450.html
Интересует вопрос: для использовония функций pop() и push() нужно ли подключать заголовочный файл из стандартной библиотеки?
C++ подключить утилиту coff2omf.exe Объясните пожл как такое сделать---- "достаточно обработать соотвествующий файл специальной утилитой coff2omf.exe" Нашла у себя эту утилиту и что с ней дальше делать? Добавлено через 20 минут ну неужели никто объяснить не может :( http://www.cyberforum.ru/cpp-beginners/thread397441.html
Сумму отрицательных четных элементов C++
Есть матрица 5 на 5 ... надо подсчитать сумму отрицательных четных элементов в каждой строке этой матрицы!! Помогите пожалуйста!
Удаление выбранной строки массива C++
Помогите доделать (2 часть) задачи: Сформировать двумерный массив. Удалить из него строку с заданным номером. #include "conio.h" #include "iostream.h" #include "alloc.h" #include "stdlib.h" void main() { clrscr(); randomize(); int **a;
C++ Подскажите,в чем заключается ошибка. http://www.cyberforum.ru/cpp-beginners/thread397417.html
Пишет,что в 26(здесь на 27) строке нету ")" перед ";". #include "stdafx.h" #include <iostream> using namespace std; int main() { int i,a,b,c,h_tetr,l_tetr,var;
C++ Как реализовать такую сортировку?? У меня имеется структура данных, я хочу ввести месяц, а мне чтобы вывелись люди, у которых в этом месяце день рождения, как это сделать? вот мои начинания void month(); void month() { int chis; cout << rus(L"Введите месяц: \n"); cin >> chis; if ( ) // какое условие подробнее

Показать сообщение отдельно
Bers
Заблокирован
03.12.2011, 02:21     Почему выводит адреса?
pun4er, мне самому стало интересно. Давайте сначала разберёмся, почему в варианте "без параметров" никакие адреса не высвечиваются.

Тут нужно подумать...

Добавлено через 11 минут
pun4er, моих знаний не достаточно. Нужно звать на помощь экспертов.

Я не в состоянии понять, почему этот код вообще компилируется:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//функция принимает один явный аргумент
ostream& endt(ostream &stream) 
{
     stream<<"1234"; 
     return stream;
}
 
void main()
{
    cout<<endt;  //здесь кауту скармливается 
                        //результат работы функции
                        //однако, при вызове функции 
                        //вообще опущены аргументы
                        //не знал, что так можно.
                        //как функция догадается, какой именно объект 
                        //ей скормили?
                        //Как она узнает, что такое steam ?
}
*кастует Сыроежку*

Добавлено через 27 минут
Разобрался:
это в классе basic_ostream)
C++
1
2
3
__ostream_type&
      operator<<(__ostream_type& (*__pf)(__ostream_type&))
      {  return __pf(*this); }
значит запись:

C++
1
cout<< endt;
равносильна:

C++
1
endt(cout);
Анализирую дальше...

Добавлено через 4 минуты
Вот эта запись:
C++
1
2
3
4
5
6
void main()
{
   int i=0;
          for (i=0;i<7;i++)  cout<<s<<endp;
    getch();
}
Эквивалентна вот этой:
C++
1
2
3
4
5
6
void main()
{
   int i=0;
       for (i=0;i<7;i++)   { cout<<s;    endp(cout); }
       getch();
}
На самом деле вы кауту скармливаете не "манипулятор без параметров", а указатель на функцию.
Внутри самого каута происходит запуск этой функции, в качестве аргумента которой будит передан this потока.

Поэтому, в вашем втором случае каут запускает функцию-манипулятор передав ей самого себя в качестве аргумента. Но ему самому(кауту) никакие другие кауты уже не скармливаются. Поэтому, он никаких адресов и не выводит
 
Текущее время: 03:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru