Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
Викдон
67 / 67 / 24
Регистрация: 21.11.2008
Сообщений: 226
0

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

12.04.2009, 23:59. Просмотров 901. Ответов 3
Метки (Все метки)

Возник вопрос по теме множественное наследование. Вот скажем у нас определены классы:

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
class Animal{
  public:
    int GetAge(){return Age;}
  public:
    int Age;
};
 
 
 
class Horse:public Animal{
 public:
  ...........
};
 
 
class Bird: public Animal{
 public:
  .........
};
 
 
class Pegasus: public Horse, public Bird{
 
};
 
int main(){
 
Pegasus R;
 
R.Horse::GetAge;
 
return 0;
}
т.е у нас есть класс Animal -базовый для классов Horse и Bird , Класс Pegasus наследуется из классов Horse и Bird. В строке: "R.Horse::GetAge;" происходит явное устранение неоднозначности метода GetAge который присутствует в классах Horse и Bird.

Но в книге прочел следующее: "Имейте в виду, что при явном устранении неоднозначности базового класса возникает риск того, что при добавлении между текущим классом и его предком промежуточного класса произойдет одновременный вызов метода прошлого и нынешнего базового классов. Это может привести к непредвиденным эффектам"

Это получается что если я сделаю вызов так: R.Animal::GerAge(); вызовется еще и метод R.Horse::GetAge;??

Вернуться к обсуждению:
Множественное наследование
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2009, 23:59
Готовые ответы и решения:

Множественное наследование
Есть два класса Human(fname, lname) и класс Employee c чисто виртуальными функц...

Множественное наследование
Имеется множественное наследование в виде треугольника. Если в обоих базовых...

Множественное наследование
По этой схеме нужно сделать множественное наследование. Вот код:#include...

Множественное наследование
Как создать нового наследника из базового класса и наследника базового класса?

Множественное наследование
Добрый день. У меня имеется базовый класс A. У этого класса есть несколько...

3
Другие темы раздела
C++ Проверка отсортированности массива http://www.cyberforum.ru/cpp-beginners/thread29801.html
Привет всем, стоит задача, которую я в Делфи сделал, а надо в С++. В с++ я полный бегиннер. Может поможет кто-то? Задача такая: нужно определить отсортирован ли массив числел. Массив находится в...
C++ Гамильтонов цикл надо разобрать прогу.выявления Гамильтонова цикла в графе... http://www.cyberforum.ru/cpp-beginners/thread29787.html
C++ Нужна помощь в исправлении кода одной функции...
Плиз.. помогите исправить код функции 'void Opt()', мне необходимо было создать программу которая читатет файл 'd:\file.txt' , создает и копирует всё его содержимое в типизированный файл 'd:\out.dat'...
Процедура в процедуре. Как сделать. C++
Вопрос в том, можно ли вызвать в процедуру процедуру. Если да, то какой синтаксис будет в этом случае правильным.
C++ Функция в задаче с процентами. http://www.cyberforum.ru/cpp-beginners/thread29754.html
#include <stdio.h> #include <conio.h> #include <math.h> int percent (int x, int y) { float c; if (x>0&&y>0) { c=x/100*y;
C++ Сортировка данных стуктуры Здравствуйте, пытался сортировать данные стуктуры, но ничего не выходило, либо выводятся нули, либо вообще ничего. #include <stdio.h> #include <iostream.h> #include <conio.h> #include... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru