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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Second
79 / 80 / 1
Регистрация: 10.08.2011
Сообщений: 665
#1

Функция - C++

12.03.2013, 01:14. Просмотров 1385. Ответов 23
Метки нет (Все метки)

Подскажите пожалуйста, может ли в С++ функция возвращать себя, как значение ? И как это реализовано в коде.
Я провожу параллели с Pascal и немного запутался...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 01:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция (C++):

Функция - C++
даны действительные числа s,t. Получить:

Функция copy - C++
Задача: скопировать файл .exe допустим из C:\Documents and Settings\Пользователь\Рабочий стол\test.exe в D:\ Проблема: пробовал все...

callback функция - C++
Здраствуйте!!! Занимаюсь разработкой снифера под DVB-карту. Пытаюсь получить MPEG-поток. Проблема заключается в том, что необходимо...

Функция kbhit - C++
Это опять я:) Не работает kbhit Нужно, чтобы во время рисования кривой Гильберта большого порядка пользователь имел возможность...

дружественная функция... - C++
есть вот такой код: #include <iostream.h> #include <math.h> #include <conio.h> class plane { float...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
15.03.2013, 12:24 #16
Dmitriy_M,
Converting a function pointer to an object pointer type or vice versa is conditionally-supported. The meaning
of such a conversion is implementation-defined, except that if an implementation supports conversions in
both directions, converting a prvalue of one type to the other type and back, possibly with different cv-
qualification, shall yield the original pointer value.
Привет, unspecified behaviour и некроссплатформенный код.
0
Second
79 / 80 / 1
Регистрация: 10.08.2011
Сообщений: 665
15.03.2013, 14:36  [ТС] #17
ого, тема живет.

У меня возник вопрос, когда я столкнулся с необходимостью понять принцип действия функции в C++.
Я описал функцию int с двумя формальными параметрами и вызвал её.
там сложил эти параметры и присвоил совершенно другой переменной.

но !! каково же было мое удивление, когда значение функции совпало с суммой.
Я до сих пор не могу понять, почему это произошло и воспринимаю это как данность.

Я изучал и работал в других языках и там гораздо жесче синтаксис, что мне ближе...
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.03.2013, 14:50 #18
Цитата Сообщение от Second Посмотреть сообщение
Я описал функцию int с двумя формальными параметрами и вызвал её.
там сложил эти параметры и присвоил совершенно другой переменной.
но !! каково же было мое удивление, когда значение функции совпало с суммой.
Приведите код уже наконец, а то тут ещё больше полемики разовьётся
0
Second
79 / 80 / 1
Регистрация: 10.08.2011
Сообщений: 665
15.03.2013, 15:24  [ТС] #19
приведу )) Вечером буду дома и выложу. Я думал, что с таким тривиальным вопросом буду освистан :F
0
Dmitriy_M
1349 / 1230 / 114
Регистрация: 20.03.2009
Сообщений: 4,420
Записей в блоге: 11
15.03.2013, 21:26 #20
ForEveR, код компилятора-зависим и архитектурно зависим, но некроссплатформенно.
А если поддерживается, то в соответствие с тем что ты привел, поведение определено:
shall yield the original pointer value.
Указатель на void* должен иметь размер достаточный, что бы содержать указатель на любой объект в частности на классы с наследованием, а такие указатели обычно имеют больший размер нежели указатели на простые типы.
0
Second
79 / 80 / 1
Регистрация: 10.08.2011
Сообщений: 665
15.03.2013, 21:37  [ТС] #21
Цитата Сообщение от Tulosba Посмотреть сообщение
Приведите код уже наконец, а то тут ещё больше полемики разовьётся
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int test1(int x, int y) 
         {
         int test2 = x - y; 
         
         }
 main()
   {
    cout <<"-------------------------  " <<test1(7 , 9) << "  ------------------";
    //printf(test2);
   return 0;
}
в результате у меня на экран выводится "-2" почему ??
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.03.2013, 21:58 #22
Цитата Сообщение от Second Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int test1(int x, int y) 
         {
         int test2 = x - y; 
         
         }
 main()
   {
    cout <<"-------------------------  " <<test1(7 , 9) << "  ------------------";
    //printf(test2);
   return 0;
}
в результате у меня на экран выводится "-2" почему ??
В test1() должен быть return, иначе ничего хорошего из этого не выйдет, несмотря на то, что плюсы компилируют такой код. У Вас "-2", а у меня "0". У других может быть вообще мусор из стека.
1
Dmitriy_M
15.03.2013, 22:05
  #23

Не по теме:


Сдается автор изучает С++ методом тыка.

1
Second
79 / 80 / 1
Регистрация: 10.08.2011
Сообщений: 665
15.03.2013, 22:33  [ТС] #24
Цитата Сообщение от Tulosba Посмотреть сообщение
В test1() должен быть return, иначе ничего хорошего из этого не выйдет, несмотря на то, что плюсы компилируют такой код. У Вас "-2", а у меня "0". У других может быть вообще мусор из стека.
Спасибо, я понял и постараюсь устранить появление таких вопросов.

Добавлено через 20 секунд
Цитата Сообщение от Dmitriy_M Посмотреть сообщение

Не по теме:


Сдается автор изучает С++ методом тыка.


Извините =/
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 22:33
Привет! Вот еще темы с ответами:

Функция DeviceIoControl - C++
Мне нужно полное описание функции DeviceIoControl или подскажите книгу, где можно найти ее описание

Функция rand - C++
Решить задачу с использованием библиотечной функции rand,заголовочный файл stdlib.h Случайные числа в диапазоне от -32768 до 32768 можно...

Функция передачи файла - C++
Помогите, пожалуйста. Как написать функцию передачи файла на iOS, девайс джейлбрейкнут, iTunes установлен.

Не работает рекурсивная функция - C++
У меня есть поле 80 на 80 клеток, с препятствиями. Функция должна в отдельный массив записавыть в соответствующую клеточку число,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.03.2013, 22:33
Ответ Создать тему
Опции темы

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