34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,437
1

Дайте , пожалуйста, подсказки по коду

31.05.2016, 22:59. Показов 404. Ответов 2
Метки нет (Все метки)

Добрый день!
Подскажите, пожалуйста, по коду ниже. Это несложный код из книги Р. Лафоре.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream> 
using namespace std;
class Distance {
private:
    int feet;
    float inches;
public: 
    Distance() : feet(0), inches(0.0){ }
    Distance(int ft, float in) : feet(ft), inches(in){ }
    void getdist()
    {
        cout << "\nEnter foots: "; cin >> feet;
        cout << "Enter inches: "; cin >> inches;
    }
    void showdist()const
    {
        cout << feet << "\'-" << inches << '"';
    }
    Distance add_dist(const Distance&) const;
};
Distance Distance::add_dist(const Distance& d2) const
{
    Distance temp; // временная переменная
    
    temp.inches = inches + d2.inches; // сложение дюймов
    if (temp.inches >= 12.0) // если сумма превышает 12.0,
    { // то уменьшаем ее на 12.0
        temp.inches -= 12.0; // и увеличиваем число футов
        temp.feet = 1; // на 1
    }
    temp.feet += feet + d2.feet; // сложение футов
    return temp;
}
int main()
{
    Distance dist1, dist3; // две длины
    Distance dist2(11, 6.25); // определение и инициализация dist2
    dist1.getdist(); // ввод dist1
    dist3 = dist1.add_dist(dist2);// dist3 = dist1 + dist2
    // вывод всех длин
    cout << "\ndist1 = "; dist1.showdist();
    cout << "\ndist2 = "; dist2.showdist();
    cout << "\ndist3 = "; dist3.showdist();
    cout << endl;
    system("pause");
    return 0;
}
Вопросы:
Строки 19 и 21: что означает значок & после Distance?

Строка25: почему в inches + d2.inches inches подаётся не как объект класса в отличие от d2.inches? Не потому ли, что в конструкторе строки 8 inches инициализировано как 0?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2016, 22:59
Ответы с готовыми решениями:

Дайте пояснение по коду
int count = 0; for (int i = 0; strok; i++) { if ((strok == 'a' &amp;&amp; strok == ';') || (strok ==...

Дайте, пожалуйста, контрпримеры
Задача №93 в acmp задание в тему

Дайте пожалуйста задачку
Помогите вот с чем, изучаю C++ для себя, в среднем понимание есть, но практики нету, хотелось бы...

Дайте алгоритм, пожалуйста =))
Связной граф задан матрицей смежности. Написать программу для поиска всех циклов графа. Я уже сам...

2
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
31.05.2016, 23:11 2
& Ссылка(говоря проще, получение адреса)
1
14 / 14 / 5
Регистрация: 10.03.2016
Сообщений: 35
31.05.2016, 23:18 3
Строки 19 и 21. Это ссылка. Что-то типа указателя в коробке, с которым можно обращаться как-будто с самим объектом.
Если бы там не стояло амперсанда, объект Distance был бы скопирован. Здесь это не так важно, но если бы там был вектор на миллион значений, это могло бы сильно сказаться на производительности программы.

Строка 25. inches -- это поле. В реализации метода add_dist используется синтаксический сахар. inhes <=> this->inches, где this -- указать на объект, от которого вызывается add_dist. Например, в строке 39, это dist1.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2016, 23:18
Помогаю со студенческими работами здесь

Дайте пожалуйста ответы
1) Почему при объявлении матрицы с одновременной инициализацией первые скобки можно оставить...

Дайте пожалуйста ссылку на сайт с командами
Помогите вспомнить на сайт с командами и функциями для С++, точно не помню на кажется эта страница...

Функция replace(). Дайте рекомендации, пожалуйста
Добрый вечер! Написал не сложную функцию replace, но чувствую, что с утечками памяти тут не всё...

Дайте,пожалуйста, совет по поводу задания
Есть односвязный список, нужно в і-ую позицию вставить элемент, как лучше бы это сделать? Создать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru