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

Функция должна вернуть 4 параметра - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция в качестве аргумента http://www.cyberforum.ru/cpp-beginners/thread721857.html
Мне нужно написать программу, которая будет включать в себя список, который можно добавлять, проверять его заполнение, а также обрабатывать его элементы (что-то похожее на стек). Так вот, у меня возникла проблема. Мне по заданию необходимо, чтобы функция-элемент вызывала простую функцию для обработки каждого элемента списка (я его представил в виде массива). И лажа в том, что когда я пытаюсь...
C++ свой цвет у каждой переменной Вопрос такой, можно ли как-то сделать, чтобы у одних переменных(любых) при Debug отображались допустим красным, а другие переменные(тоже любые) отображались зеленым. Если реально, то сделать только с помощью программных средств, без установки плагинов http://www.cyberforum.ru/cpp-beginners/thread721843.html
Строки (В произвольном тексте найти самое короткое слово) C++
Задание: В произвольном тексте найти самое короткое слово. Цель работы: изучение правил описания, ввода-вывода и основных функций обработки символьных данных.
C++ Сортировка вставками объясните алгоритм на примере
Ни как не могу разобрать как работает алгоритм(я понимаю суть, но как это работает именно в программе понять не могу). Объясните пожалуйста поэтапно как будет работать программа (не алгоритм) именно в подчёркнутых строчках для примера "dcab". Сам код для наглядности: void insertSort(int* a, int size) { int i, j, tmp; for (i = 1; i < size; ++i) // цикл проходов, i - номер...
C++ Run-Time Check Failure #0 http://www.cyberforum.ru/cpp-beginners/thread721832.html
Как исправить ошибку : Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. Вот код: // ConsoleApplication6.cpp: главный файл проекта. #include "stdafx.h" #include <conio.h> #include "iostream"...
C++ запись в файл (нужен участок кода где поочередно записываются символы из файлов) Задание: открыть 1-й файл и 2-й для чтения , 3-й для дозаписи. В третий записать поочередно символы из первого и второго файлов. Если в 1-м файле кончаются символы, запись из 2-го продолжается и наоборот. помогите пожалуйста с программой , нужно в общем сам участок кода где поочередно записываются символы из файлов мой код (примитивный, но какой есть) если есть ошибки в нем подскажите где.... подробнее

Показать сообщение отдельно
prazuber
109 / 109 / 3
Регистрация: 29.04.2010
Сообщений: 240
06.12.2012, 20:19     Функция должна вернуть 4 параметра
Vourhey, ссылка в вашем коде не несет никакой смысловой нагрузки, елементы массива можно изменять и без нее. Более того, я не смог придумать ни одного примера использования вашей конструкции, так как у вас b не является lvalue, и присвоить ей другой масив не представляется возможным.

doncelab, я думаю, такой код вам подойдет:
C++
1
2
3
4
void foo(double a, int b[4])
{
    // ...
}
Здесь елементы массива b останутся измененными после выхода из функции. Это происходит потому, что массив указывает на свои елементы, и при передаче массива в функцию передаются указатели на эти елементы (если быть точнее, указатель на первый елемент), а сами объекты не копируются, как, например, происходит с переменной a. Для того, чтобы запретить изменение елементов массива, функцию стоит объявить как
C++
1
void foo(double a, const int b[4])
Да, еще я заметил, что я не привел пример с передачей объекта в функцию по ссылке. В функции foo переменная a передается по значению, т.е. в теле функции не используется та переменная, с которой фукнция вызывалась, а используется ее копия. Синтаксис передачи елемента по значению такой:
void foo(double &a);
Еще небольшой пример для понимания:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void foo(int a)
{
    a = 7;
}
 
void bar(int &a)
{
    a = 7;
}
 
int main()
{
    int a = 5;
    std::cout<<"a = "<<a<<'\n'; // a = 5
    foo(a);
    std::cout<<"a = "<<a<<'\n'; // a = 5
    bar(a);
    std::cout<<"a = "<<a<<'\n'; // a = 7
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru