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

Удаляется объект когда не требуется и всё равно продолжает существовать - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графика http://www.cyberforum.ru/cpp-beginners/thread624543.html
Добрый день. Не сочтите за ярого баяниста , но все же прошу дать совет с чего начать программирование графики? Нужно написать любую простенькую игрушку. Если можно ссылочку на литературу ? Заранее спасибо
C++ Переписать в третий массив общие элементы первых двух массивов без повторений Даны 2 массива размерности M и N соответственно. Необходимо переписать в третий массив общие элементы первых двух массивов без повторений. Добавлено через 3 минуты в решении необходимо использовать 1 вложенный цикл. Часть кода я уже написал...не могу понять как сделать чтоб элементы массива не повторялись. for (i=0; i<N; i++) { for (j=0;j<M;j++) http://www.cyberforum.ru/cpp-beginners/thread624533.html
Посоветуйте задачник по С++ C++
Нахожу много всяких самоучителей и т.п., но нужен просто сборник задач для практики на одномерные и двумерные массивы, циклы, условия, функции. Можно даже без решений.
C++ Предусмотреть вывод значений для полей
Предусмотреть вывод значений для полей элементов массива записей по следующим ключам: дате, предмету судебного разбирательства, названию фирмы-истца, названию фирмы-обвиняемого. Определить, в каком году было больше всего дел, связанных с дискриминацией.
C++ Операции с типом double http://www.cyberforum.ru/cpp-beginners/thread624505.html
double h=0.005; double T=0.2; double tN=0.3; int Nt=(tN-T)/h; cout<<"Nt "<<Nt<<endl; На экран выводится 19, при h=0.0005 выводит 199. Куда делась единица?
C++ Написать программу, которая считывает текст из файла и выводит на экран только строки, не содержащие двузначных чисел Написать программу, которая считывает текст из файла и выводит на экран только строки, не содержащие двузначных чисел. подробнее

Показать сообщение отдельно
mamucho666
1 / 1 / 0
Регистрация: 06.06.2012
Сообщений: 13

Удаляется объект когда не требуется и всё равно продолжает существовать - C++

16.07.2012, 17:07. Просмотров 1095. Ответов 24
Метки (Все метки)

Всем привет. Честно говоря я не знаю как ещё более правильно описать проблему в заголовке. В общем проходил раздел, посвящённый <functional>, и, собственно, там всё понятно, но заметил одну странность, потом перепроверил в специально написанном для проверки более простом коде и она подтвердилась.
Код ниже выводит на экран вот эти надписи:

ok1
ok2
delete ok1
100

delete ok2

Вопросы мои по поводу выделенных жирным.

1. Зачем удаляется объект класса ок1 до завершения функции в которой он создан?
2. Если он удалился, то откуда тогда взялся доступ к члену этого объекта?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct ok1
{
    ok1(int i):val(i){cout << "ok1" << endl;}
    int val;
    ~ok1(){cout << "delete ok1" << endl;}
};
struct ok2
{
    ok2 (ok1 & refobj):obj(refobj){cout << "ok2" << endl;}
    ok1 & obj;
    ~ok2(){cout << "delete ok2" << endl;}
};
int main()
{
    ok2 a(ok1(100));
    cout << a.obj.val << endl;
    system("pause");
    return 0;
}
P.S. Заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru