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

Можно ли как-то в дочернем классе получить указатель родителя? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перенос программы в Windows Forms http://www.cyberforum.ru/cpp-beginners/thread1143620.html
Срочно нужно перенести код консольного приложения в с++ Буду очень признателен. Минимальный интерфейс. 1 текстовое поле для результата. 1 выдвижное меню для выбора тональности. #include <iostream> #include <locale> #include <conio.h> using namespace std; int main() {
C++ Дана последовательность Последовательность x1, x2, ... образована по закону (См. картинку) (i=1,2, ...). Дано действительное число e>0. Записать в файл h члены последовательности x1, x2, ..., остановившись после первого члена для которого выполнено |xi|<e http://www.cyberforum.ru/cpp-beginners/thread1143618.html
Вычисление высоты дерева C++
Всем привет! Дерево создано на основе стека, но вот в чем беда компилируется с ошибкой error C4703: используется потенциально неинициализированная локальная переменная-указатель "p" Не пойму как исправить не переписывая полностью программу) #include "stdafx.h" #include "stdio.h" #include <locale.h> #include <iostream> using namespace std;
C++ Несколько исходников в проекте
Возможно ли создание проекта с несколькими исходными файлами и одним, так сказать "головным"? То есть я не хочу всё писать в один файл, а хочу разбросать код по каждому файлу, для упрощения. Если можно, то как потом подключать вспомогательные .cpp файлы в главный файл?
C++ Как привязать цветовые координаты (rgb и hsl) к картинке http://www.cyberforum.ru/cpp-beginners/thread1143608.html
Подскажите пожалуйста!!! Как привязать цветовые координаты (rgb и hsl) к картинке в c++.
C++ Переведите с Pascal на C++ Пожалуйста, переведите на C++ var a:array of longint; n,m,i,j,i1,j1,max:Longint; begin read(n,m); for i:=0 to n-1 do for j:=0 to m-1 do read(a); max:=a; i1:=0; подробнее

Показать сообщение отдельно
newbie666
Заблокирован
09.04.2014, 17:42  [ТС]     Можно ли как-то в дочернем классе получить указатель родителя?
Цитата Сообщение от ITcrusader Посмотреть сообщение
А такой вариант чем не устраивает?)
ну в данном случае я не устраивает что переменных может быть много.... так что лучше так:
C++
1
Child(Base *base){*this = base;};
Добавлено через 6 минут
А как лучше реализовать такое:
Есть базовый класс, есть дочерний и есть дочерний от дочернего.
[class Base, class Child1 : public Base и class Child2 : public Child1]
1. Создаю экземпляр Child1. Тоесть просто вызывается конструктор Base и потом Child1. Всё ок.
2. Теперь хочу продолжить цепь наследования именно этих классов, тоесть хочу создать экземпляр Child2, чтоб он не копировал в себя данные другой цепи, которую я создавал в п.1, а являлся бы полноценным связынным наследником...

Именно:
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
class Base
{
public:
    Base(){};
    ~Base(){};  
    int baseData;
};
 
class Child1 : public Base
{
public:
    Child1(){};
    ~Child1(){};
};
 
class Child2 : public Child1
{
public:
    Child2(){};
    ~Child2(){};
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    Child1 *child1 = new Child1;
    child1->baseData = 33;
 
    Child2 *child2 = new Child2;
    //что - то сделать
    child1->baseData = 66;
    if(child2->baseData != 66)
        std::cout << "БЕДА...:-)";
    return 0;
}
Добавлено через 2 минуты
полагаю тут нужен даункастинг типа:
C++
1
2
3
4
5
6
Child1 *child1 = new Child1;
child1->baseData = 33;
 
Child2 *child2 = new Child2;
child2 = static_cast<Child2*>(child1);
child1->baseData = 66;
да?
 
Текущее время: 05:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru