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

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

Войти
Регистрация
Восстановить пароль
 
xma
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 6
#1

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

12.01.2014, 04:18. Просмотров 413. Ответов 6
Метки нет (Все метки)

как получить полный адрес по имени поля объекта класса ?

не пересчитывая размер расположенных до него полей от начала объекта
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2014, 04:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как получить полный адрес по имени поля объекта класса (C++):

Указатель на объект базового класса и адрес объекта производного класса - C++
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; } ~Class1() {delete j;}

Адрес объекта класса - C++
как можно получить адресс обьекта класса например создаю я класс в котором будет указатель типа моего класса, и мне надо в конструкторе...

Создание объекта по имени класса - C++
Привет, собственно вопроса три: 1) Как называется тип класса (то что в шарпе наззывается Type, и откуда его инклюдить) 2) Как зная...

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

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

Удаление поля объекта класса - corruption of the heap - C++
в методе класса abc; for(int i=0;i<5;i++) { abc temp; temp=*this;//в перегрузке присваивания выделяется память под...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
12.01.2014, 09:39 #2
xma, это из реверс инженерии? Опишите задание получше.

Добавлено через 4 часа 15 минут
offsetof это?
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.01.2014, 10:43 #3
C++
1
&object.member
0
xma
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 6
12.01.2014, 18:37  [ТС] #4
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
&object.member
так не работает .

предложили такое решение , а как на чистом C (там же тоже структуры есть) ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
struct A
{
    int a;
    char b;
    double c;
    virtual void foo()
    {
    }
};
int main()
{
    A b;
    std::cout << "Source object: " << std::hex << reinterpret_cast<ptrdiff_t>(&b) << std::endl;
    std::cout << "Member a: " << std::hex << reinterpret_cast<ptrdiff_t>(&b.a) << std::endl;
    std::cout << "Member b: " << std::hex << reinterpret_cast<ptrdiff_t>(&b.b) << std::endl;
    std::cout << "Member c: " << std::hex << reinterpret_cast<ptrdiff_t>(&b.c) << std::endl;
    return 0;
}
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.01.2014, 18:46 #5
Цитата Сообщение от xma Посмотреть сообщение
так не работает .
А что, собственно, не работает? Адрес не выдаёт?
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.01.2014, 18:51 #6
И где на работает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
struct A
{
    int a;
    char b;
    double c;
    virtual void foo()
    {
    }
};
 
int main()
{
    A b;
    std::cout << "Source object: " << &b << std::endl;
    std::cout << "Member a: "      << &b.a << std::endl;
    std::cout << "Member b: "      << (void*)&b.b << std::endl;
    std::cout << "Member c: "      << &b.c << std::endl;
    
    return 0;
}
0
Миниатюры
Как получить полный адрес по имени поля объекта класса  
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
12.01.2014, 18:59 #7
Цитата Сообщение от xma Посмотреть сообщение
как получить полный адрес
что подразумевается под полным адресом? Смещение? Виртуальный адрес? Линейный? Физический?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2014, 18:59
Привет! Вот еще темы с ответами:

Адрес объекта, адрес указателя. Где что находится? - C++
#include &lt;iostream&gt; void Foo(int* val) { std::cout &lt;&lt; val &lt;&lt; &quot; &quot; &lt;&lt; *val &lt;&lt; &quot; &quot; &lt;&lt; &amp;val &lt;&lt; '\n'; } void Bar(int* &amp;val) ...

Как в классе А у объекта класса B вызвать метод класса B ? - C++
Есть Класс A и класс B . В классе B лежит объект типа ArrayList , назовём его arrayList, в этом же классе есть метод push() . Возможно ли в...

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

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.01.2014, 18:59
Ответ Создать тему
Опции темы

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