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

Передача данных по значению и по ссылке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить функцию, которая формирует новое число с обратным порядком цифр по отношению к исходному числу http://www.cyberforum.ru/cpp-beginners/thread654147.html
1. Составить функцию с оператором return. 2. Преобразовать функцию к void-функции, составленную в рамках языка С. 3. Преобразовать функцию к void-функции, использующую возможно¬сти языка C++. 1. С клавиатуры вводится длинное целое число. Составить функ¬цию, которая формирует новое число с обратным порядком цифр по отношению к исходному числу /* 1, 2, 3 */.
C++ Удалить первый из отрицательных элементов и минимальный из положительных элементов массива 1. Дана последовательность из N элементов. Уменьшить ее, удалив первый из отрицательных элементов и минимальный из положитель¬ных элементов и сдвинув все остальные к началу. http://www.cyberforum.ru/cpp-beginners/thread654145.html
C++ Как описать факториал меняющийся через 10 или иное число
Не могу понять как использовать факториал, меняющийся не через 1, а любое другое число (10, 2). Стоит задача: на основе Веса, роста и возвраста посчитать: - Hat size = Веса / рост*2.9 (здесь проблем нет); - Jacket size = рост * Вес / 288 и прибавить 1/8 к каждым годам более 30 через каждые 10 лет. (нет поправок к 30 - 39, первая 1/8 к 40 годам). - Waist = Вес / 5.7 и прибавить 1/10 к...
C++ Найти сумму квадратов четных элементов матрицы
как создать двумерный массив где количество строк и столбцов вводится с клавиатуры и найти сумму квадратов четных элементов... прога на C# есть а в C++ незнаю как сделать(((( int n, m; int A = new int; int B = new int; public Form1() { InitializeComponent(); }
C++ Копировать значение поля m_moo в значение поля m_moo класса foo http://www.cyberforum.ru/cpp-beginners/thread654113.html
А что означает запись? Foo1(Foo1 const& foo):m_moo(foo.moo) то что это к.копирования понятно.Не понятно,зачем список инициализации.... это значит что то типа:копирует значение поля m_moo в значение поля m_moo класса foo? спасибо
C++ Проверить истинность высказывания: Справедливо двойное неравенство A < B < C 2)Даны три целых числа: A, B, C. Проверить истинность высказывания: «Справедливо двойное неравенство A < B < C». подробнее

Показать сообщение отдельно
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
30.01.2015, 21:30     Передача данных по значению и по ссылке
Цитата Сообщение от Gourmand Посмотреть сообщение
Тоже самое, только другими словами. У каждого свой язык C++. (С) Понимаете, к чему я клоню?
Нет, это не тоже самое.

Вот это - тоже самое:
Цитата Сообщение от hoggy Посмотреть сообщение
-- там где по смыслу требуется работать именно с указателем, работают с указателем.
-- там где по смыслу требуется работать с живым объектом ,
работают с ссылкой, или с объектом по значению (зависит от ситуации)
--------------------------------

Я покажу на примере:

Вы там что-то обмолвились о деревьях. Хорошо, пускай будет дерево.
(правда это не совсем дерево, это - граф, но не суть).

Итак, есть некоторое дерево,
которое представляет собой форму с элементами пользовательского интерфейса:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
auto form = 
  Form::create("form")
    .size(10,10)    
    .position(100,100)
    .title("Form")   
    .Widget<Box>("box1") 
      .size(10,10) 
      .position(100,100)
    .init()          
    .Widget<Box>("box2") 
      .size(10,10)
      .position(100,100)
    .init();
Причем, эту форму можно составлять, как статически (как показано выше), так и динамически.
Например, можно создать отдельно элемент "метка":

C++
1
2
3
4
5
6
auto label = 
    Form::create<Label>("label")  
        .size(10,10)
        .position(100,100)
        .text("this is label")
    .init();
А потом вставить её в формочку:

C++
1
form.Add(label);
При этом, форма на самом деле представляет собой граф,
который работает по ссылочной семантике.
Одни и те же элементы можно прицеплять сразу в нескольких местах,
Кроме того, допустимо создавать циклические взаимосвязи и тд, и тп.

Главное, что сейчас нужно понять:
один и тот же элемент может иметь сразу нескольких родителей.
Причем часть этих родителей могут быть из одной формы, а часть вообще из другой.
А может и вовсе не иметь. Он сам может оказаться "главное формой".

Поехали дальше:

Есть функция. Задача которой - найти первого попавшегося родителя элемента,
который принадлежит указанной форме:

C++
1
Form* Find(const Form& form, const Form& element);
Внимательно прочтите данный прототип и ответьте мне на следущие вопросы:
1. Почему возвращается указатель, а не ссылка?
2. Почему в качестве формы и элемента использованны именно ссылки, а не указатели?
3. Почему указатель не помечен квалификатором const ?
4. Почему ссылки помечены квалификатором const?
-----------------------------------------------------------------------------------------

Что до плюсов: правила языка едины для всех.

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