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

О вызове функций классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ создать и напечатать матрицу http://www.cyberforum.ru/cpp-beginners/thread373348.html
YurA_280784, доброго дня помоги пожалуйста создать матрицу или плдскажи буду благодарен !!! создать и напечатать матрицу С, размером (6*7) найти минимальное по модулю элементы в каждом столце матрицы. Подзадачи создания и печать матрицы оформить в виде процедур а подзадачи определения массива минимальных значений оформить в виде функции.
C++ Глупый вопрос про наследование Вот фрагмент кода, реального: class CListviewParamPrimary : public CListviewParamFloats { private: /** * @brief Возвращает указатель на объект значения параметра */ virtual CParamValue *get_primary_param(void) = 0; virtual const CParamValue *get_primary_param(void) const = 0; http://www.cyberforum.ru/cpp-beginners/thread373344.html
Объяснить разницу между префиксным и постфиксным инкрементом на простых примерах C++
Можете объяснить разницу между i++ и ++i на просто примере с цифрами?
Контроль напряжения на портах USB C++
Доброго времени суток. Кто может, подскажите пожалуйста можно ли контролировать количество напряжение что подается на USB порт(вкл, выкл) и если можно то как.
C++ Программа на массивы http://www.cyberforum.ru/cpp-beginners/thread373307.html
Помогите пожалуйста написать правильный код для программы. Уже дня 3-4 пробую ничего не получается путевого. Вообщем. Дан двумерный массив, элементы которого вводятся случайным образом. Нужно заполнить новый одномерный массив из элементов двумерного массива которые встречаются в нем более одного раза. Вот то что я пробовал делать: #include <conio.h>; #include <iostream>; #include <clocale>;...
C++ Ответы на книгу Бьерн Страуструп Программирование - Принципы и практика с помощью C + + Вот хотел есть ли книга с ответами на упражнения в книги Бьерн Страуструп Программирование - Принципы и практика с помощью C + + . Просто что то иногда не получается хочется глянуть как это делается подробнее

Показать сообщение отдельно
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533

О вызове функций классов - C++

27.10.2011, 12:00. Просмотров 747. Ответов 14
Метки (Все метки)

Здравствуйте, товарищи!

У меня возник вопрос, почему работает данный код:
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
 
using namespace std;
 
class A
{
public:
    int a;
    int b;
    A()
    {
        cout<<"Constr\r\n";
    }
    void my(int a)
    {
        cout<<"my\r\n";
    }
    ~A()
    {
        cout<<"Destr\r\n";
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    A *a = new A();
    a->a = 5;
    a->b = 10;
    cout<<"&a = "<<&a<<"\r\n";
    cout<<"a = "<<a<<"\r\n";
    delete a;
    cout<<"a->a = "<<a->a<<"\r\n";
    cout<<"a->b = "<<a->b<<"\r\n";
 
    a = reinterpret_cast<A*>(0x403450L);
    cout<<"&a = "<<&a<<"\r\n";
    cout<<"a = "<<a<<"\r\n";
    a->my(0);
    cout<<"a->a = "<<a->a<<"\r\n";
    cout<<"a->b = "<<a->b<<"\r\n";
    _getch();
    return 0;
}
Вывод на консоль
C++
1
2
3
4
5
6
7
8
9
10
11
Constr
&a = 0012FF54
a = 0034C3B8
Destr
a->a = -17891602
a->b = -17891602
&a = 0012FF54
a = 00403450
my
a->a = 0
a->b = 0
т.е. мне не понятно, почему после удаления объекта, и изменения значения указателя a
сохраняется возможность вызвать функцию my.
Вероятно, функции в объектах вызываются каким-то странным образом?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru