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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
gotostereo
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 38
#1

Вызов метода в классе из другого - C++

21.10.2013, 10:58. Просмотров 1817. Ответов 3
Метки нет (Все метки)

Не получается выполнить следующую цепочку действий. Запускаю метод в классе B через main, он запускает метод в классе A который должен запустить метод 2 в классе B.

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
class A;
class B;
 
class A {
privat:
  B *b;
public:
 void function_a1 {
 b.function_b2();     // не могу вызвать функцию в классе B
 
}
 
}
 
class B {
privat:
  A a;
 
public:
 void function_b1 {
  //могу вызвать класс А отсюда.
  a.function_a1();
}
 void function_b2 {
   //действие
}
 
}
 
int main()
{
B b;
b.function_b1(); //стартуем
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 10:58     Вызов метода в классе из другого
Посмотрите здесь:

Вызов метода из метода C++
C++ Передача метода класса в качестве параметра для метода другого класса
Вызов функции в классе C++
C++ Вызов обратной функции в классе
C++ Структура в классе (из метода увидеть переменную)
Вызов оператора= в производном классе C++
C++ Смещение метода в классе
Создание метода в классе C++
Вызов статического метода из другого класса C++
C++ Шаблон метода в классе
C++ Вызов метода другого класса
C++ В производном классе вызов приватного метода базового класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.10.2013, 11:03     Вызов метода в классе из другого #2
Просто определите функцию a1 после определения класса B.

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
class A;
class B;
 
class A {
private:
  B *b;
public:
 void function_a1();
}
 
class B {
private:
  A a;
 
public:
 void function_b1 {
  //могу вызвать класс А отсюда.
  a.function_a1();
}
 void function_b2 {
   //действие
}
 
}
 
void A::function_a1()
{
   b->function_b2();     // не могу вызвать функцию в классе B
}
 
int main()
{
B b;
b.function_b1(); //стартуем
 
}
gotostereo
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 38
21.10.2013, 12:36  [ТС]     Вызов метода в классе из другого #3
не совсем понял, нужно вставить функцию в не класса
C++
1
2
3
4
void A::function_a1()
{
   b->function_b2();     // не могу вызвать функцию в классе B
}
?
Тогда меняется смысл, мне нужно что бы вся цепочка работала. Методы обенивались информацией находясь в разных классах. В примере, хотя бы вызывали.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.10.2013, 12:45     Вызов метода в классе из другого #4
gotostereo, Почему же меняется? Функция остается функцией класса, просто определяется уже после того как определен класс B, т.к. методы класса можно вызывать для уже определенного класса и только так.
Yandex
Объявления
21.10.2013, 12:45     Вызов метода в классе из другого
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru