Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1367 / 590 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
1

Вызов методов из классов

09.12.2015, 14:11. Показов 584. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class B;
 
class A
{
public:
    void foo() {
        B x;  //Хотел вызвать метод нижнего класса. (Без наследования).
        x.foo();
    }
};
class B
{
public:
    void foo() { cout << "OK"; }
    B() {}
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2015, 14:11
Ответы с готовыми решениями:

Вызов методов классов по указателям
Имеется управляющий класс, в котором определен указатель на функцию: void (Operation*) (); ...

Вызов методов базового и производного классов
Народ, объясните тупому механику раннего связывания. Вывод программы, что ниже, 22. Хотя если...

Хранение экземпляров классов-наследников, и вызов их методов
Столкнулся с проблемой. Есть класс-родитель и 2 класса-наследника. class Base { public: ...

Вызов методов с одинаковыми именами для разных классов
В функцию func можно передать один из двух классов A или B. У них есть функции с одинаковыми...

6
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
09.12.2015, 15:44 2
Вот так работает:
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
#include <iostream>
using namespace std;
 
class B
{
public:
    void foo() { cout << "OK"; }
    B() { }
};
 
class A
{
public:
    void foo()
    {
        B x;  //Хотел вызвать метод нижнего класса. (Без наследования).
        x.foo();
    }
};
 
 
int main()
{
    A a;
    a.foo();
    system("pause");
}
Как сделать, что бы порядок определения классов был не важен (B после A), пока не додумался.
Отпишите, кто знает.
0
Диссидент
Эксперт C
26355 / 16361 / 3558
Регистрация: 24.12.2010
Сообщений: 36,244
09.12.2015, 15:52 3
Цитата Сообщение от Lensato Посмотреть сообщение
Как сделать, что бы порядок определения классов был не важен
Реализацию метода делать не в хедере, а в СРР.
0
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
09.12.2015, 15:56 4
Цитата Сообщение от Байт Посмотреть сообщение
Реализацию метода делать не в хедере, а в СРР.
Да, но я имел в виду именно в одном файле.
0
:)
Эксперт С++
4769 / 3263 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
09.12.2015, 16:43 5
Цитата Сообщение от Lensato Посмотреть сообщение
Как сделать, что бы порядок определения классов был не важен
Имхо, никак. В C++ принято делить код на заголовочные файлы и файлы реализации. Если в одном файле, то будь любезен организовать правильный порядок определений классов. Определение функций-членов можно вынести в самый конец, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class B
{
public:
    void foo();
    B();
};
 
class A
{
public:
    void foo() {
        B x;  
        x.foo();
    }
};
 
void B::foo() { std::cout << "OK"; }
А если уж очень хочется писать всё в одной куче - добро пожаловать в C#.
0
rikimaru2013
09.12.2015, 16:45
  #6

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
добро пожаловать в C#
фу таким быть

0
Tulosba
09.12.2015, 16:47     Вызов методов из классов
  #7

Не по теме:

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
фу таким быть
язык врага надо знать :)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2015, 16:47

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как...

Вызов методов класса
Здравствуйте! При компиляции программы(в среде CodeBloks) выдается такая ошибка: request for...

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

Вызов методов класса
// practice.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...


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

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

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