Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 17.05.2018
Сообщений: 14

Как указателю на класс присвоить адрес класса?

09.11.2019, 15:16. Показов 1546. Ответов 1

Студворк — интернет-сервис помощи студентам
Я пишу программу, и столкнулся с одной проблемой. У меня в функцию, передаётся в качестве параметра ссылка на объект класса, и далее мне надо изменять сам объект, а не работать с копией. Но при попытке присвоить указателю адрес, получается что-то странное. Ниже схематично описал проблему, т.к. сама программа большая.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include <locale>
#include "Header.h"
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    a i;
 
    std::cout<<"Адрес i в main: " << &i << endl;
 
    p(i);
 
    system("pause");
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#pragma once
#include <iostream>
using namespace std;
class a
{
 
};
 
void p(a& i)
{
    a* h = &i;
 
    std::cout << "Адрес i в p: " << &i << endl;
    std::cout << "Адрес h в p: " << &h << endl;
}
Пример вывода:

Адрес i в main: 006FF70B
Адрес i в p: 006FF70B
Адрес h в p: 006FF620

Как правильно присвоить адрес указателю, чтобы он ссылался на мой объект?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2019, 15:16
Ответы с готовыми решениями:

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

Как лучше присвоить указателю на указатель адрес массива
Во первых, как ЛУЧШЕ присвоить указателю на указатель адрес массива. int num = {1,3,5,7,6,7,8,1,0,9}; int **ptr = &amp;num; Так...

Присвоить указателю конкретный адрес
Есть переменная типа str.Допустим там хранится строка &quot;5a32d8&quot;.Как это значение присвоить указателю. Т.е. чтобы указатель указывал на...

1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
09.11.2019, 15:20
Лучший ответ Сообщение было отмечено Wulf_Panzer как решение

Решение

Цитата Сообщение от Wulf_Panzer Посмотреть сообщение
std::cout << "Адрес h в p: " << &h << endl;
Тут вы печатаете адрес указателя (у него есть тоже). Попробуйте:
C++
1
std::cout << "Адрес по ук-лю h в p: " << h << endl;
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2019, 15:20
Помогаю со студенческими работами здесь

Присвоить Указателю адрес из массива Char
Например есть такой код: #include &lt;iostream&gt; using namespace std; int main() { int a = 123456789; int *sa =...

Присвоить указателю адрес 6-го элемента массива, напечатать его значение, используя текущий базовый адрес сегмента
Заполнить массив А(10) случайными значениями. Организовать вывод на экран. Присвоить указателю адрес начала размещения массива в памяти....

Присвоить указателю адрес начала размещения массива в памяти
Заполнить массив Х(10) случайными значениями. Организовать вывод на экран. Присвоить указателю адрес начала размещения массива в памяти....

Заполнить массив М(10) случайными значениями. Присвоить указателю адрес начала размещения массива в памяти
Заполнить массив М(10) случайными значениями. Организовать вывод на экран. Присвоить указателю адрес начала размещения массива в памяти....

Заполнить массив М(10) случайными значениями. Организовать вывод на экран. Присвоить указателю адрес начала размещения массива в памяти
Заполнить массив М(10) случайными значениями. Организовать вывод на экран. Присвоить указателю адрес начала размещения массива в памяти....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru