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

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

Восстановить пароль Регистрация
 
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
13.04.2011, 21:33     Адрес объекта класса #1
как можно получить адресс обьекта класса
например создаю я класс в котором будет указатель типа моего класса, и мне надо в конструкторе записать адрес моего предыдущего обьекта класса в этот указатель,адресс предыдущего обьекта у меня будет хранитса в статическоп указателе,
статический указатель будет обновлятса по мере создания новых обьектов, но вот как получить указатель на обьект во время вызова конструктора я понят не могу...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 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,266
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     Адрес объекта класса
Ответ Создать тему
Опции темы

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