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

Указатели на Классы

14.12.2012, 22:44. Показов 4613. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
[CPP]class B
{
public:
int x;
B() { // Конструктор по умолчанию
x = 4; }
};
class D : public B { // Производный класс
public:
int y;
D()
{ // Конструктор по умолчанию
y = 5; }
};
void main(void) {
D d;// Конструктор класса D создает объект d
B *p; // Указатель установлен на базовый касс
p = &d;// Указатель p инициализируется адресом d
// косвенное обращение к объектам базового и производного классов
// «считываем их текущее состояние в переменные
int i = p -> x; // Базовый класс виден напрямую
int j = ( ( D* ) p )p -> y;// Прямое преобразование указателя на D
// через переменные печатаем их текущее состояние
cout << “ x_i= “ << i << endl;
cout << “ y_j= “ << j << endl;
getch();
[/CPPQT]
Подскажите как правильно записать строчку
C++ (Qt)
1
int j = ( ( D* ) p )p -> y;// Прямое преобразование указателя на D
поидее дожно быть както так но у мя получаеца указатель на B масив вместо D(((
[CPP] int j =*((D* )p )*p -> y;[/CPPQT]
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2012, 22:44
Ответы с готовыми решениями:

Указатели на классы
class A {}; class B : public A {}; int main() { A *ob1=new B; B *ob2=new B;

Классы и указатели
Пишет:&quot;Отсутствуют экземпляры конструктора &quot;Pet::Pet&quot;, соответствующие списку аргументов типы аргументов:(char*)&quot;. #include...

Классы и указатели
Добрый день, у меня такой вопрос. Вот есть две идентичные записи. Client * NewClient = new Client; Client NewClient; Где Client -...

1
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.12.2012, 22:49
C++
1
2
3
4
5
6
7
8
по шагам:
сперва базовый нужно преобразовать в производный и потом у производного обратиться к y
D* d = (D*)p; // лучше конечно же static_cast<D*>(p);
int j = d->y;
 
или правильно расставить скобочки
int j = ((D*)p)->y;
int j = static_cast<D*>(p)->y;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2012, 22:49
Помогаю со студенческими работами здесь

Классы, указатели и функции?
Помогите пожалуйста разобраться в программе. Нужно из конструктора класса передать адреса в другую функцию ,разадресовывать и поставить...

Ссылки. Указатели. Классы
Здравствуйте. Пишу базу данных, и наткнулся на проблему с ссылкой. Код ниже, как ее исправить. int Base::CmpGrN(const Base a, const Base...

Указатели на производные классы
Подскажите, как создать массив типа &quot;указатель на базовый класс&quot;, который будет содержать указатель указатели на производные...

Перечисление,указатели, классы
Здравствуйте, можете скинуть или написать простые задачи на тему &quot;Перечисление,указатели, классы&quot;

Задача на классы и статические указатели
Условие задачи: в любой момент времени можно получить последнего из могикан (объект класса), без использования отдельного экземпляра. Нужно...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru