Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 27.10.2013
Сообщений: 80
1

Вызов метода предка из дочернего

25.03.2018, 12:09. Показов 2034. Ответов 3
Метки нет (Все метки)

Есть класс А. Внутри него создается объект класса В(класс А НЕ является для него базовым, т.е. не унаследован от него). Я хочу внутри объекта класса В вызвать метод класса А, в котором он и был создан. Работаю в Qt, уже пробовал в конструкторе класса В передать указатель на А.
C++
1
2
3
4
5
6
7
8
A::Method1()
{
    B obj(this);
}
A::Method2()
{
    qDebug() << "УРА ЛОЛ ПОЛУЧИЛОСЬ";
}
C++
1
2
3
4
B::B(QWidget* parent)
{
    parent.Method2();
}
Однако, желаемый метод Method2 класса А не распознается.
Так же пытался напрямую указать родителя для B, что по сути имеет тот же смысл.
C++
1
2
3
4
5
A::Method1()
{
    B obj();
    obj.setParent(this)
}
C++
1
2
3
4
B::B()
{
    this.parent.Method2();
}
Тоже не работает.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2018, 12:09
Ответы с готовыми решениями:

Вызов методов предка
Привет! Подскажите, как в классе-потомке вызвать метод предка, например, если методы потомка и...

Переопределение метода предка
Доброго времени суток. Возникла такая проблема: при вызове метода(Logic), который по разному...

Вызов метода дочернего класса из базового
Привет всем. Ни как не могу понять как позволить базовому классу вызвать метод дочернего. Например:...

ReactJS. Вызов дочернего метода в родителе
Помогите, никак не могу сообразить, как вызвать метод дочернего элемента в родительском, не...

3
Don't worry, be happy
17268 / 10140 / 1963
Регистрация: 27.09.2012
Сообщений: 25,368
Записей в блоге: 1
25.03.2018, 12:37 2
parent->Method2();
0
2 / 2 / 1
Регистрация: 27.10.2013
Сообщений: 80
25.03.2018, 12:45  [ТС] 3
Я был несколько неаккуратен в написании кода тут. Конечно, моя проблема НЕ в стрелочках, а в реализации. Вообще-то у меня там this->parent()->Method2().
0
Don't worry, be happy
17268 / 10140 / 1963
Регистрация: 27.09.2012
Сообщений: 25,368
Записей в блоге: 1
25.03.2018, 12:54 4
О какой ошибке говорит компилятор?

C++
1
2
3
4
5
6
7
8
//A.h
//include guards
class A
{
public:
    void foo();
    void bar();
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//A.cpp
#include "A.h"
#include "B.h"
 
 
void A::foo()
{
   B b(this);
}
 
void A::bar()
{
   //...
}
C++
1
2
3
4
5
6
7
8
//B.h
//include guards
class A;
class B
{
public:
    B(A * parent);
};
C++
1
2
3
4
5
6
7
8
9
//B.cpp
#include "A.h"
#include "B.h"
 
B::B(A * parent)
{
   if (parent)
      parent->bar();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2018, 12:54

Интерфейсы - как добратся до метода предка
Допустим некий интерфейс определен в родительском классе и также определен в дочернем классе....

Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода
В базовом классе метод помечен как virtual. Насколько я понял из книги: override означает, что...

TreeView. Получить имя предка предка, выбрав потомка
Как получить имя предка в TreeView, при этом выбрав потомка?

Вызов методов классов друг у друга (вызов метода из другого класса)
Есть несколько классов, которые могут вызывать методы (функции) друг у друга. Логика: класс1 имеет...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru