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

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

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

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

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

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

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

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

Вопрос.

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

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

Заранее спасибо !!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2015, 18:08
Ответы с готовыми решениями:

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

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

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

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

10
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
31.03.2015, 18:13 2
RAFA91, а можно нормально назвать классы? Нифига ж непонятно.
2
34 / 44 / 9
Регистрация: 14.03.2015
Сообщений: 134
31.03.2015, 18:18 3
жестишь чувак чуть мозг мне не сломал!!!
1
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.03.2015, 18:24 4
Цитата Сообщение от 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
Одессит
243 / 88 / 44
Регистрация: 30.12.2013
Сообщений: 316
Записей в блоге: 2
31.03.2015, 19:07 5
Будто прочитал пересказ китайского фильма.
3
Заблокирован
01.04.2015, 12:00  [ТС] 6
hoggy большое спасибо за более подробный вариант в виде кода.

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

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

Они же совсем разных типов. Какая-то путаница выходит(((
0
18843 / 9842 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
01.04.2015, 12:30 7
Цитата Сообщение от RAFA91 Посмотреть сообщение
Какая-то путаница выходит(((
Никакой путаницы. Представь, что указатели, это не адреса, а указатели на понятия.
Представь, что есть общее понятие - автомобиль. И есть частное понятие - автомобиль опель. Вопрос, можем ли мы везде, где имеется в виду "автомобиль опель" использовать просто понятие "автомобиль", ответ - конечно да. Например ситуация, когда ты идешь ставить машину в гараж, ты говоришь "пойду поставлю машину в гараж". Тебе не обязательно при этом всегда упоминать, что эта машина опель астра, 2014 года выпуска. Теперь перенесем это в код.
C++
1
2
3
Automobile * mycar = new OpelAstra();
// ....
me->putCarIntoGarage(mycar);
Таким образом полиморфизм указателей в пределах иерархии классов позволяет реализовать разные уровни детализации при взаимодействии с объектами.
1
Заблокирован
01.04.2015, 16:00  [ТС] 8
спасибо - буду думать !!!
0
Заблокирован
30.10.2015, 17:59  [ТС] 9
Подскажите пожалуйста в данной строке все правильно ?
Миниатюры
Указатели разных типов   Указатели разных типов  
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
30.10.2015, 18:45 10
Цитата Сообщение от RAFA91 Посмотреть сообщение
Они же совсем разных типов. Какая-то путаница выходит(((
Производный класс отличается от базового, точно также как холодильник с прикольными магнитиками отличается от холодильника без магнитиков (полная бинарная совместимость и пиво внутри то же самое). Так что все логично.

Добавлено через 3 минуты
Цитата Сообщение от RAFA91 Посмотреть сообщение
Подскажите пожалуйста в данной строке все правильно ?
Вроде бы, pfunc=& надо.
1
Заблокирован
31.10.2015, 14:37  [ТС] 11
Цитата Сообщение от Renji Посмотреть сообщение
Вроде бы, pfunc=& надо.

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

такой прикол только с методами классов
0
31.10.2015, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2015, 14:37
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru