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

Передача в функцию - ссылки, указатели, константы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ c++ Перевод сртоки из CString в локальную char http://www.cyberforum.ru/cpp-beginners/thread903869.html
Здравствутйте. Прошу помощи новичку. Ищу функцию для копирования строки из массива в локальную. Инет всегда ведет приводит за бегор с английским не очень. Help ) Добавлено через 11 минут наверно самый простой способ это при итициализации переменной просто вливать не в массив а вструктару ?
C++ Работа с матрицами (Получить элементы квадратной матрицы, где элементы матрицы зависят от параметров) ЗАДАНИЕ: Получить элементы квадратной матрицы , где элементы матрицы , зависят от параметров и . Из матрицы А по заданному правилу получить компоненты вектора . Вычислить значения величины B по элементам вектора D. 2. В матрице A найти первую по порядку строку с наибольшей суммой ее элементов и в качестве компонентов вектора D принять эту строку. Ниже приведена формула элементов... http://www.cyberforum.ru/cpp-beginners/thread903856.html
Программа для диагностики системы C++
Доброго времени суток, Господа! Пожалуйста, помогите создать программу диагностирующая систему ПК или андроид. Есть знания в области с++ и питон. Хотя бы необходимые учебники или материал.
C++ Описать класс, реализующий тип данных «вещественная матрица» и работу с ними
Доброго времени суток, необходима помощь в написании программы. Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами: комбинированные операции присваивания (+=, -=, *=, /=);операции сравнения на равенство/неравенство. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню,...
C++ Блок-схема для легких программ с функциями и массивом http://www.cyberforum.ru/cpp-beginners/thread903786.html
Ребята, помогите, пожалуйста с составлением блок-схемы на данную программу для работы с массивом. Бьюсь уже какое время, и никак не получается... // Написать программу ввода в массив 20 чисел и поиска в нем // максимального значения. #include <iostream> #include <stdio.h> using namespace std; int main()
C++ Вывести все числа которые делятся на 3 (от 0 до 100) Вывести все числа которые делятся на 3 (от 0 до 100) циклом for. Если есть идеи по решению буду признателен:) подробнее

Показать сообщение отдельно
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
19.06.2013, 14:20  [ТС]     Передача в функцию - ссылки, указатели, константы
Цитата Сообщение от Jupiter Посмотреть сообщение
эти две записи означают одно и тоже, возвращение константы, какого-то особого смысла в этом нет
т.е., вот есть небольшая программа:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream> 
 
int const fun  ( int  D) 
{
D = 8;
return D;
}
 
int main()
{
int varOne = 5;
int varTwo = 0;
 
varTwo = fun(varOne);
 
std::cout << varTwo << "\n";
 
system("pause");
return 0;
}

Есть 2 переменных - varOne, допустим она находится по адресу 0001 и varTwo которая находится по адресу 0002, когда начинается выполнение функции (fun) то мы создаем копию переменной varOne, имя этой копии D и располагается она по адресу 0003, и то, что мы возвращаем является константным значением, т.е. переменная расположенная по адресу 0003 является константной, но она становится константной только тогда когда мы ее возвращаем, т.е. до строчки 6 (return D) я могу с этим D делать все что угодно, а далее, в строчках 7 и 14 переменная расположенная в 0003 является константной, соответственно после строчки 14 переменная по адресу 0003 будет уничтожена, по этому данная запись бесполезна?

Цитата Сообщение от Jupiter Посмотреть сообщение
эти две записи означают одно и тоже, var внутри функции ведет себя как константа
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream> 
 
int fun  (int const  D) 
{
D = 8;
return D;
}
 
int main()
{
int varOne = 5;
int varTwo = 0;
 
varTwo = fun(varOne);
 
std::cout << varTwo << "\n";
 
system("pause");
return 0;
}


Тут как я понимаю в строчке 3 D присваивается значение 5 и внутри функции я его не могу менять, т.е. на строчке 5 мне выдаст ошибку.


Цитата Сообщение от Jupiter Посмотреть сообщение
такая запись допустима только для методов класса.
означает она то что этот метод класса не модифицирует состояние объекта.
внутри такого метода нельзя модифицировать поля класса
А с вот этим бы хотелось уточнить т.е. если у меня есть переменная-член var и функция int fun (int var) const { } должна ее изменить, допустим прибавить 1 к ней, то эта функция не будет работать, компилятор выдаст ошибку?

Добавлено через 11 минут
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
 
class mat
{
public:
mat(): var(0) {}
mat(int rhs): var(rhs) {}
~mat() {}
 
void set_var(int rhs) {var = rhs;}
int get_var() {return var;}
 
int plus_odin() const { var++; return var; }
 
private:
int var;
};


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