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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
#1

Адрес объекта класса - C++

13.04.2011, 21:33. Просмотров 432. Ответов 4
Метки нет (Все метки)

как можно получить адресс обьекта класса
например создаю я класс в котором будет указатель типа моего класса, и мне надо в конструкторе записать адрес моего предыдущего обьекта класса в этот указатель,адресс предыдущего обьекта у меня будет хранитса в статическоп указателе,
статический указатель будет обновлятса по мере создания новых обьектов, но вот как получить указатель на обьект во время вызова конструктора я понят не могу...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2011, 21:33     Адрес объекта класса
Посмотрите здесь:

C++ Получить адрес объекта
Адрес объекта. C++
Объявление объекта одного класса в описании другого класса C++
Использование объекта одного класса при создании нового класса C++
C++ Адрес объекта, адрес указателя. Где что находится?
В строке первого объекта класса слово MAX длины заменить на слово MAX длины второго объекта класса C++
C++ Как получить полный адрес по имени поля объекта класса
Как передать адрес объекта через функцию C++
C++ Проверка создания объекта класса BBB из класса AAA и работа с ним
C++ Адрес объекта в памяти при наследовании
C++ создание объекта класса в методе этого же класса
Как в классе А у объекта класса B вызвать метод класса B ? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
13.04.2011, 22:14     Адрес объекта класса #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
 
class obj{
    public:
    obj():prev(curr){
        curr=this;
    }
    obj* prev;
    static obj* curr;
};
 
obj* obj::curr=NULL;
 
int main(){
    obj a;
    std::cout<<"a.prev= "<<a.prev<<"\n&a= "<<obj::curr<<"\n";
    obj b;
    std::cout<<"b.prev= "<<b.prev<<"\n&b= "<<obj::curr<<"\n";
    return 0;
}
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
13.04.2011, 22:59  [ТС]     Адрес объекта класса #3
блин.... как же я мог забыть про this! спасибо огромное!
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,304
13.04.2011, 23:32     Адрес объекта класса #4
Да, только адрес предыдущего объекта хранится не в статическом указателе, как было заявлено а в локальном
prev или как его там.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
 
class obj{
    public:
    obj() {
        prev=curr;
        curr= this;
    }
    static obj* prev;
    static obj* curr;
};
 
obj* obj::curr=NULL;
obj* obj::prev=NULL;
 
int main(){
    obj a;
    std::cout<<"a.prev= "<<a.prev<<"\n&a= "<<obj::curr<<"\n";
    obj b;
    std::cout<<"b.prev= "<<b.prev<<"\n&b= "<<obj::curr<<"\n";
    getchar ();
    return 0;
}
не знаю правильно или нет извините если что не так
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
14.04.2011, 14:36  [ТС]     Адрес объекта класса #5
спасибо ,я разобрался))
Yandex
Объявления
14.04.2011, 14:36     Адрес объекта класса
Ответ Создать тему
Опции темы

Текущее время: 21:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru