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

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

Войти
Регистрация
Восстановить пароль
 
ValeryQ
13 / 13 / 1
Регистрация: 14.09.2010
Сообщений: 43
#1

Функции 2-х классов! - C++

01.05.2011, 22:46. Просмотров 413. Ответов 7
Метки нет (Все метки)

Как из функции класса А, вызвать функцию класса Б?? подскажите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2011, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции 2-х классов! (C++):

Функции для классов - C++
class Goods { public: virtual void Show() = 0; }; class Toy :public Goods { private: char* nameT;

Программа с использованием дружественной функции и классов - C++
Я в С++ новичок. Нужна программа с использованием дружественной функции и классов. Можете привести пожалуйста пару примеров? Заранее...

Наследование классов, обратиться к замещающей функции - C++
заголовочный файл #include <iostream> using namespace std; class X{ public: int x1,x2; X(int x_1, int x_2){ x1 =...

Виртуальные функции при создании иерархии классов - C++
#include "stdafx.h" #include <iostream> using namespace std; class var{ int temperatura; float shirina; public: virtual...

Вызов функции сразу для массива всего классов - C++
Добрый день. Я делаю класс Pixel, и в этом классе есть функция Draw(); Так вот я создаю массив этих классов. Вопрос: Как мне...

С помошью одной функции посчитать результат для двух классов - C++
//С помощью функции friend obrab подсчитать сумму матрицы и массива. Ошибки выдаёт не опйму почему. #pragma once class matriza ...

7
resource2008
109 / 109 / 2
Регистрация: 11.03.2011
Сообщений: 421
01.05.2011, 22:56 #2
ну тут целая куча вариантов:
1. один из классов является родительским, а второй дочерним, от него порожденным
функции родительского класса будут доступны дочерним

2. в одном классе объявить элемент типа второй класс О_о

3. сделать классы дружественными
1
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
01.05.2011, 22:58 #3
А так же, если функция в классе Б открыта и статическая тупо вызвать имя_класса::имя_функции(параметры).
Сделать класс шаблонным, инстанцировать шаблон класса A для класса B, создать в классе A член-данное шаблонного типа - вызвать функцию через объект в нужном месте.
2
ValeryQ
13 / 13 / 1
Регистрация: 14.09.2010
Сообщений: 43
01.05.2011, 23:16  [ТС] #4
resource2008, еще вопрос, а из родительского нельзя вызвать функцию дочернего?
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
01.05.2011, 23:21 #5
ValeryQ, Ну это уже полная жесть. Родительский класс не знает ничего о дочернем.
Путем разных изворотов впринципе полагаю что возможно.
0
resource2008
109 / 109 / 2
Регистрация: 11.03.2011
Сообщений: 421
01.05.2011, 23:21 #6
Цитата Сообщение от ForEveR Посмотреть сообщение
А так же, если функция в классе Б открыта и статическая тупо вызвать имя_класса::имя_функции(параметры).
Сделать класс шаблонным, инстанцировать шаблон класса A для класса B, создать в классе A член-данное шаблонного типа - вызвать функцию через объект в нужном месте.


а из родительского нельзя вызвать функцию дочернего?
нет, ну можно в принципе, если долго извращаться))))
ну а вообще нельзя)
1
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
01.05.2011, 23:28 #7
Извращаться кстати можно по-разному. Один из вариантов)

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
#include <iostream>
 
 
template<class T>
class Base
{
public:
    void call_from_derived()
    {
        der_object->foo();
    }
private:
    T der_object;
};
 
class Derived:public Base<Derived*>
{
public:
    void foo()
    {
        std::cout << "From derived\n";
    }
};
 
int main()
{
    Base<Derived*> bz;
    bz.call_from_derived();
}
Но он не совсем честен все же.
2
ValeryQ
13 / 13 / 1
Регистрация: 14.09.2010
Сообщений: 43
01.05.2011, 23:33  [ТС] #8
ForEveR, ох ты блин, запутаться можно)) ладно, спасибо за помощь)
0
01.05.2011, 23:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2011, 23:33
Привет! Вот еще темы с ответами:

Реализовать иерархию классов (использовать наследование, полиморфизм, виртуальные функции) - C++
Первый базовый класс – млекопитающие; поля – способ питания, вес, среда обитания. Во втором базовом классе описываются географические...

Виртуальные функции (создать массив указателей на объекты трех классов) - C++
Задание: создать массив указателей на объекты трех классов. Метод Show почему-то не переопределяется. В данном коде вводится 3 элемента в...

Почему RTTI работает только с иерархией классов, содержащие виртуальные функции? - C++
Почему RTTI работает только с иерархией классов, содержащие виртуальные функции?

Strcpy(), классы, линейные списки и функции. Стала появляться ошибка после использования классов - C++
Вот код: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;string.h&gt; #include &lt;Windows.h&gt; using namespace...


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

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

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