Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452

Указатели разных типов

31.03.2015, 18:08. Показов 1254. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые форумчане !!!

Хочу уточнить для себя следующую деталь.

Есть базовый класс Fada и производные от него Tasa Kfasa Kfghj.

В классе Kfghj есть указатель rtrt типа Fada.

В начале я в rtrt загружаю к примеру new Kfasa.

Вопрос.

Могу ли я в классе Kfasa создать обьект Tasa таким образом (Tasa *сdf = new Tasa) и возвратить указатель

сdf указателю rtrt класса Kfghj ?

Заранее спасибо !!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2015, 18:08
Ответы с готовыми решениями:

Указатели и преобразование типов
Доброго времени суток уважаемые форумчанае! Возник вопрос, о котором стыдно даже спрашивать. Но в сторону гордость. Есть такой кусок: ...

Добавить в список указатели на обьекты произвольных типов
Доброго времени суток, плиз помогите кто чем может ,имеется класс class TGarbageCollector { public: template...

Матрица из разных типов
хочу создать клас Matrix елементы обьектов которого могли бы быть разных типов. была идея создать клас Cell и определить его как...

10
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
31.03.2015, 18:13
RAFA91, а можно нормально назвать классы? Нифига ж непонятно.
2
34 / 44 / 9
Регистрация: 14.03.2015
Сообщений: 134
31.03.2015, 18:18
жестишь чувак чуть мозг мне не сломал!!!
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.03.2015, 18:24
Цитата Сообщение от RAFA91 Посмотреть сообщение
Могу ли я в классе Kfasa создать обьект Tasa таким образом (Tasa *сdf = new Tasa) и возвратить указатель
сdf указателю rtrt класса Kfghj ?
да, конечно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
 
struct Fada 
{
    virtual ~Fada(){}
};
    
 
struct Tasa: Fada 
{
    
};
 
struct Kfasa: Fada 
{
 
    Kfasa()
        :cdf (new Tasa )
    {}
    
    Tasa * cdf ;
    
    
};
 
struct Kfghj: Fada 
{
    Kfghj()
        :rtrt(new Kfasa)
    {}
    
    Fada* rtrt;
};
 
int main()
{
    std::cout << "Hello, world!\n";
    
    Kfasa obj1;
    Kfghj obj2;
    
    obj2.rtrt = obj1.cdf;
}
деструкторы, утечки памяти - эту косметику вы уж как нибудь сами.
1
Одессит
 Аватар для kylroma
243 / 88 / 44
Регистрация: 30.12.2013
Сообщений: 316
Записей в блоге: 2
31.03.2015, 19:07
Будто прочитал пересказ китайского фильма.
3
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
01.04.2015, 12:00  [ТС]
hoggy большое спасибо за более подробный вариант в виде кода.

С Вашей помощью изучение С++ будет более эффективным.

У меня такой вопрос. Почему указатель Fada *rtrt; может хранить адреса обьектов производных классов ?

Они же совсем разных типов. Какая-то путаница выходит(((
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
01.04.2015, 12:30
Цитата Сообщение от RAFA91 Посмотреть сообщение
Какая-то путаница выходит(((
Никакой путаницы. Представь, что указатели, это не адреса, а указатели на понятия.
Представь, что есть общее понятие - автомобиль. И есть частное понятие - автомобиль опель. Вопрос, можем ли мы везде, где имеется в виду "автомобиль опель" использовать просто понятие "автомобиль", ответ - конечно да. Например ситуация, когда ты идешь ставить машину в гараж, ты говоришь "пойду поставлю машину в гараж". Тебе не обязательно при этом всегда упоминать, что эта машина опель астра, 2014 года выпуска. Теперь перенесем это в код.
C++
1
2
3
Automobile * mycar = new OpelAstra();
// ....
me->putCarIntoGarage(mycar);
Таким образом полиморфизм указателей в пределах иерархии классов позволяет реализовать разные уровни детализации при взаимодействии с объектами.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
01.04.2015, 16:00  [ТС]
спасибо - буду думать !!!
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
30.10.2015, 17:59  [ТС]
Подскажите пожалуйста в данной строке все правильно ?
Миниатюры
Указатели разных типов   Указатели разных типов  
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
30.10.2015, 18:45
Цитата Сообщение от RAFA91 Посмотреть сообщение
Они же совсем разных типов. Какая-то путаница выходит(((
Производный класс отличается от базового, точно также как холодильник с прикольными магнитиками отличается от холодильника без магнитиков (полная бинарная совместимость и пиво внутри то же самое). Так что все логично.

Добавлено через 3 минуты
Цитата Сообщение от RAFA91 Посмотреть сообщение
Подскажите пожалуйста в данной строке все правильно ?
Вроде бы, pfunc=& надо.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
31.10.2015, 14:37  [ТС]
Цитата Сообщение от Renji Посмотреть сообщение
Вроде бы, pfunc=& надо.

Спасибо за помощь ! Автор видимо забыл поставить этот знак.

такой прикол только с методами классов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2015, 14:37
Помогаю со студенческими работами здесь

Хранение разных типов
Приветствую всех. Возник вот такой вопрос. У меня есть, например, 3 разных структуры, каждая из которых имеет разные поля: struct one ...

Сложение разных типов
У меня из файла в переменную int считывется число.. Мне нужно занести в переменную string это число + строка. Например int...

Использование разных типов указателей
Здравствуйте! Программа должна засерать переменную n, а вместо этого она забивает мусором переменную upper. Можете подсказать в чём дело? ...

Присваивание разных типов итераторам
При выводе элементов из указателей записанных во втором условном операторе if выводится много мусора т.к. элементы list располагаются в...

Сложение разных типов матриц
Подскажите алгоритм сложения двух типов матриц 5*5 (одна заполняется рандомно, вторая - статически). Результат в виде третьей матрицы....


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
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