Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Рекурсия: вычислить значение выражения sqrt(1+sqrt(2+...sqrt(n))) Вычислить с помощью рекурсии и без нее - y(n) = sqrt(1+sqrt(2+...sqrt(n).. Как выполнить задание с помощью рекурсии? #include <iostream.h> #include <math.h> double sum(int); double sumr(int); int main() { int n; https://www.cyberforum.ru/ cpp-beginners/ thread1016808.html C++ Формы на С++
Здравствуйте . Такой вопрос: есть ли возможность создавать оконные программы на с++? Что для этого нужно? Никак не могу найти никаких нормальных уроков по этому делу. У меня стоит VS 2008. С чего хотя бы стоит начать ? Помогите , пожалуйста, с этим вопросом.
C++ ребята помогите написать программу на с++ по решению типовых линейных задач. мне это на курсовую работу https://www.cyberforum.ru/ cpp-beginners/ thread1016799.html
Тема: Разработка прикладного алгоритма моделирования линейных задач Задача 3. Некоторая фирма выпускает два набора удобрений для газонов: обычный и улучшенный. В обычный набор входит 3 фунта азотных, 4 фунта фосфорных и 1 фунт калийных удобрений, а в улучшенный – 2 фунта азотных, 6 фунтов фосфорных и 3 фунта калийных удобрений. Известно, что для некоторого газона требуется по меньшей мере 10...
C++ Бинарный файл (с++) и структуры Пользователь вводит количество студентов. Вводится информация о студенте и тут же выводится в бинарный файл. Встает несколько вопросов: как при выводим в файл перейти на новую строку и как корректно считать эту структуру из бинарного файла . И еще: когда вывожу структуру в ТЕКСТОВЫЙ файл (точно таким же способом), нормальное отображается только имя студента. Помогите, пожалуйста, ко тем может. ... https://www.cyberforum.ru/ cpp-beginners/ thread1016794.html
Двухмерный массив C++
Здравствуйте, уважаемые форумчане. Прошу у вас помощи с программой. Нужно создать двухмерный массив и вывести строку, содержащую самую длинную серию элементов. Идей нет совсем. Буду благодарен за помощь
C++ Работа со строками Решить линейное уравнение, заданное в формате строки: ax+(-)b=c Пример ввода: 5x–8=2 Результат: x=2 https://www.cyberforum.ru/ cpp-beginners/ thread1016782.html
C++ кодирование RLE я составила для себя алгоритм допустим в файле |65|65|66| считали 65 считали следущее т.е. опять 65 считали следущее т.е. 66 видим что не повторилось значит 65 было два раза https://www.cyberforum.ru/ cpp-beginners/ thread1016778.html C++ Ошибка "Необработанное исключение" в программе с strlen и strtok
Из заданной текстовой строки распечатать только те слова, которые начинаются и оканчиваются одной и тоже буквой, используя функции strtok, strlen. Ответ выводится правильно,но вместе с ошибкой "Необработанные исключения ...", в чём косяк? #include <stdio.h> #include <conio.h> #include <string.h> #include <iostream> #include <stdlib.h> void main()
C++ Ошибка stdafx.h: No such file or directory при запуске программы выдает такую ошибку : fatal error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory посоветуйте пожалуйста что делать?? никак не могу справиться с этим:cry: https://www.cyberforum.ru/ cpp-beginners/ thread1016760.html C++ Вызов обратной функции в классе // main.cpp #include "func.h" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { CREATEWIN(); bool bq = false; MSG msg; https://www.cyberforum.ru/ cpp-beginners/ thread1016758.html
C++ Задать число рандомом, высокое требование к качеству случайности
Здравствуйте, необходимо задать целое рандомное число от 0 до 1000 включительно, причем вероятность выпадания любого числа должна быть максимально равной. Как такое реализовать? Слышал что-то про boost библиотеки D:
C++ не могу разобраться в представлении символов Скажите пожалуйста что будет выводить программа если из файла считывается символы(латинские, русские, цифры и прочее) причем массив в который считывается имеет тип: unsigned int, что будет выводить программа? у меня она выводит каждый раз разный набор цифр 3435973 и еще три меняющиеся при каждой компиляции Так как все таки представляется информация? (у меня задание сжатие методом RLE и я... https://www.cyberforum.ru/ cpp-beginners/ thread1016750.html
10 / 10 / 0
Регистрация: 20.09.2013
Сообщений: 22
24.11.2013, 00:30  [ТС] 0

Деструкторы - C++ - Ответ 5380374

24.11.2013, 00:30. Показов 648. Ответов 7
Метки (Все метки)

Ответ

Цитата Сообщение от Only_Loko Посмотреть сообщение
Вообщем сразу к сути. В нижеприведенном примере вызывается 2 деструктора. Я никак не пойму, почему именно два?
вот сам метод:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Distance Distance::add_dist(const Distance& d)const
{
    Distance tmp;
    tmp.feet=0;
    tmp.inches=inches+d.inches;
    if(tmp.inches>=12)
    {
        tmp.feet++;
        tmp.inches-=12;
    }
    tmp.feet+=feet+d.feet;
    return tmp;
}

Вот вызов этого метода в мэйне(Поля dist2 и dist1 инициализированы):
Кликните здесь для просмотра всего текста
C++
1
dist3=dist2.add_dist(dist1);

Может кто объяснит почему?
Да пожалуйста, мне не жалко
Описание класса:
Кликните здесь для просмотра всего текста

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
class Distance{
private:
    int feet;
    float inches;
public:
    Distance(): feet(0), inches(0)
    {
        cout<<"\nWithout parametrs ";
    }
    Distance(int ft, float in): feet(ft), inches(in)
    {
        cout<<"\nWith parametrs";
    }
    ~Distance()
    {
        cout<<"\n Destructures ";
    }
    void getdist()
    {
        cout<<"Enter feets: "; cin>>feet;
        cout<<"Enter inches: "; cin>>inches;
    }
    void showdist()const
    {
        cout<<feet<<"\'-"<<inches<<'\"';
    }
    Distance add_dist(const Distance&)const;
};


мэйн:
Кликните здесь для просмотра всего текста

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    Distance dist1, dist3;
    Distance dist2(11, 6.25);
    dist1.getdist();
    dist3=dist2.add_dist(dist1);
    cout<<"\ndist1 = "; dist1.showdist();
    cout<<"\ndist2 = "; dist2.showdist();
    cout<<"\ndist3 = "; dist3.showdist();
    cout<<endl;
    return 0;
}


Вопрос тот же: почему при выполнении метода add_dist вызывается 2 деструктора?

Вернуться к обсуждению:
Деструкторы C++
0
Заказать работу у эксперта
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2013, 00:30
Готовые ответы и решения:

Деструкторы
Всем доброго времени суток! Возникли некоторые непонятки с деструкторами, а точнее их время вызова...

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

Конструкторы и деструкторы
Создать класс LongLong для работы с целыми числами из 64 бит. Число должно быть представлено двумя...

Конструкторы и деструкторы
Здравствуйте!Помогите пожалуйста с решением данной задачи, Буду премного благодарен за оказанную...

7
24.11.2013, 00:30
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2013, 00:30
Помогаю со студенческими работами здесь

Конструкторы и деструкторы
Прочитал про конструкторы и деструкторы. Пишут что они нужны для инициализации переменных класса....

Конструкторы и деструкторы
#include &lt;iostream&gt; #include &lt;Windows.h&gt; class Try { public: void* px; Try() {...

Конструкторы и деструкторы
Напишите простейшие примеры объявления и определения конструкторов и деструкторов. Желательно,...

Где деструкторы?
Ребят сижу разбираю код на С++,не могу понять где диструктор тут.. #include &lt;vcl.h&gt; #pragma...

0
Новые блоги и статьи
Что такое хорошо и что такое плохо, вид сбоку. Индивид и общество - грань не нарушения.
Hrethgir 18.01.2025
В моей личной жизни и времени, я рассуждаю категорией "хуже-лучше", в том плане, когда меня спросили например - "а зачем ты делаешь свой процессор?", то я ответил - "чтобы сделать свою жизнь лучше". . .
Передача по ссылке или по значению в Java?
InfoMaster 18.01.2025
В мире программирования на Java одним из ключевых аспектов, требующих глубокого понимания, является механизм передачи параметров в методы. Этот фундаментальный концепт часто становится источником. . .
Тернарный условный оператор в Python
InfoMaster 18.01.2025
В мире программирования существует множество инструментов и конструкций, позволяющих создавать эффективный и лаконичный код. Одним из таких инструментов является тернарный условный оператор, который. . .
Как удалить неотслеживаемые файлы из рабочего дерева Git
InfoMaster 18.01.2025
В процессе разработки программного обеспечения с использованием системы контроля версий Git часто возникает необходимость в управлении неотслеживаемыми файлами. Неотслеживаемые файлы (untracked. . .
Что делает код if __name__ == "__main__": в Python
InfoMaster 18.01.2025
В мире программирования на Python существует множество важных концепций, и одной из наиболее интересных является конструкция if __name__ == "__main__". Эта специальная конструкция играет ключевую. . .
Как заставить Git забыть об отслеживаемом файле, добавленном в .gitignore
InfoMaster 18.01.2025
В мире разработки программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, позволяя эффективно отслеживать изменения в коде и управлять ими. Однако. . .
Что означает use strict в JavaScript и для чего используется
InfoMaster 18.01.2025
В мире современной веб-разработки JavaScript играет ключевую роль как один из основных языков программирования. По мере его эволюции возникла необходимость в механизмах, которые помогли бы. . .
Как работать со скрытыми (hidden) элементами в jQuery
InfoMaster 18.01.2025
В современной веб-разработке управление видимостью элементов на странице является одним из ключевых аспектов создания интерактивных пользовательских интерфейсов. jQuery предоставляет мощный набор. . .
Как переключаться между ветками (Branch) с помощью checkout в Git
InfoMaster 18.01.2025
Ветки в Git являются одной из ключевых концепций для управления версионностью кода, позволяя разработчикам эффективно работать в команде и параллельно развивать программные проекты. Каждый новый. . .
Что такое стек и куча, чем они отличаются и где находятся
InfoMaster 18.01.2025
Понимание основных концепций памяти в программировании В мире современного программирования эффективное управление памятью играет ключевую роль в создании производительных и надежных приложений. . . .
Как использовать комментарии в JSON
InfoMaster 18.01.2025
JSON (JavaScript Object Notation) представляет собой легкий и широко используемый формат обмена данными, который стал стандартом де-факто для веб-приложений и программных интерфейсов. При работе с. . .
Как заставить git pull перезаписать локальные файлы в Git
InfoMaster 18.01.2025
Проблема перезаписи локальных файлов в Git При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо синхронизировать локальный репозиторий с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru