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

Множественное наследование - C++

Восстановить пароль Регистрация
 
bearwoolfs
 Аватар для bearwoolfs
15 / 15 / 2
Регистрация: 10.01.2011
Сообщений: 275
02.06.2011, 17:15     Множественное наследование #1
Друзья прошу помочь разобраться, как получить доступ из массива J[X], к методу (O) из класса (С)


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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
using namespace std;
 
class A
{
    public:
    virtual void M(){cout<<"Class A"<<endl;} 
};
 
class B
{
    public:
    virtual void N(){cout<<"Class B"<<endl;} 
};
 
class C:public A,public B
{
    public:
    virtual void O(){cout<<"Class C"<<endl;} 
};
const int X=5;
int main()
{
    A*R[X];
    B*J[X];
    A*pA;
    B*pB;
    int i;
    for (i=0;i<5;i++)
    {
    pA=new C;
    R[i]=pA;
    }
    for (i=0;i<5;i++)
    {
    pB=new C;
    J[i]=pB;
    }
    
for (i=0;i<5;i++)
    {
    pB=new B;
    R[i]->M();
    }
for (i=0;i<5;i++)
    {
        J[i]->N();  
}
return 0;
}
 Комментарий модератора 
В следующий раз увижу код, не оформленный в теги - предупреждение будет более весомым.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 17:15     Множественное наследование
Посмотрите здесь:

множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
02.06.2011, 17:17
  #2

Не по теме:

ща будет фиолетого-белое окошко с надписью "! Используйте теги форматирования кода"

pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
02.06.2011, 17:20     Множественное наследование #3
Цитата Сообщение от bearwoolfs Посмотреть сообщение
B *J[X];
ты можешь обратиться только к методу N или M
если нужен метод О:
Цитата Сообщение от bearwoolfs Посмотреть сообщение
С *J[X];
bearwoolfs
 Аватар для bearwoolfs
15 / 15 / 2
Регистрация: 10.01.2011
Сообщений: 275
02.06.2011, 17:28  [ТС]     Множественное наследование #4
Не догнал )))
Нужностарый массив высвободить из памяти
delete j[i]
а новый записать
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
02.06.2011, 17:46     Множественное наследование #5
у тебя массив объектов типа B, у которого нет метода О. И боюсь удалить delete[] J нельзя, так как он не был выделен с помощью new и скорее всего живёт в сегменте данных, а не в куче. Скорее всего выдаст ошибку при выполнении. Но допустим у тебя J был динамическим объектом
Цитата Сообщение от bearwoolfs Посмотреть сообщение
а новый записать
что это значит? Если ты запишешь новый, то метод O у него всё равно не появится. Есть способ поместить объекты типа C в массив В, но он подразумевает под собой танцы с void* и xxx_cast, но это всё небезопасно тем более для типов, определяемых пользователем. Врядли это то что ты хочешь сделать
silent_1991
02.06.2011, 18:02     Множественное наследование
  #6

Не по теме:

Цитата Сообщение от co6ak Посмотреть сообщение
ща будет фиолетого-белое окошко с надписью "! Используйте теги форматирования кода"
Не угадали

Yandex
Объявления
02.06.2011, 18:02     Множественное наследование
Ответ Создать тему
Опции темы

Текущее время: 01:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru