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

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

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

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

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

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

Как получить полный адрес по имени поля объекта класса - C++
как получить полный адрес по имени поля объекта класса ? не пересчитывая размер расположенных до него полей от начала объекта

В строке первого объекта класса слово MAX длины заменить на слово MAX длины второго объекта класса - C++
Доброго времени суток! Есть задача: Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка....

Адрес объекта. - C++
Есть класс.В котором при вызове конструктора выводится адрес объекта. cout << "Hello from object: " << this << endl; Надо...

Получить адрес объекта - C++
Есть задание: Реализовать пользовательский класс, имеющий конструктор по умолчанию и выполняющий вывод сообщения вида "я конструктор...

Адрес объекта в памяти при наследовании - C++
Здравствуйте. Имею вот такой код: class ClassA { public ClassA(void *ptr1) { void *ptr2 = this; } }

Вставка asm, адрес члена локального объекта - C++
TLongInteger & TLongInteger:: operator + (const TLongInteger &Additional) { TLongInteger Result; asm { } return...

Как передать адрес объекта через функцию - C++
Здравствуйте! Надеюсь я правильно сформулировал вопрос, хотелось бы узнать как такое реализовать: //Есть функция с таким типом...

Доступ к приватному полю через адрес экземпляра объекта - C++
Объясните такой момент class A { private: char s; public: char Get(){ return s; }

Получить адрес не статического метода класса - C++
Можно ли получить адресс не статического метода класса (статического можно - пробовал).

Указателю на базовый класс присвоить адрес производного класса - C++
class Point { public: Point(float a=0, float b=0) { x=a; y=b; } protected: float x; float y; };

Разработка класса: Abiturient: Фамилия, Имя, Отчество, Адрес, Оценки - C++
разработать класс включая в метод Set и Get определить другие методы. Написать программу демонстрирующую работу с этим классом. ...

Сложить 2 объекта класса - C++
Вечер добрый! Собственно не могу сообразить как это реализовать :( остановился пока на этом: class sum{ int a; //вот мои 2 поля...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 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
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
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     Адрес объекта класса
Ответ Создать тему
Опции темы

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