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

Наследование и полиморфизм. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ С++ матрицы,нужна помощь в решении задачи!) http://www.cyberforum.ru/cpp-beginners/thread399374.html
Программа должна запрашивать размеры матрицы и самостоятельно заполнять ее с помощью генератора случайных чисел.Верхняя граница для значения элементов матрицы также вводится с клавиатуры. Задача: Дана целочисленная квадратная матрица. 1)Найти количество строк,среднее арифметическое элементов которых меньше заданной величины. 2)Удалить из данной матрицы нулевые элементы,заменяя их средним...
C++ [c++] Прямоугольная матрица Создать функцию для определения количества отрицательных элементов в каждой строке исходной прямоугольной матрицы. Результат функция должна формировать в виде вектора, длина которого соответствует количеству строк исходной матрицы. Написать программу для тестирования созданной функции. В программе должен выполняться ввод исходных данных, вызов функции и вывод полученного результата в... http://www.cyberforum.ru/cpp-beginners/thread399355.html
количество елементов C++
в массиве a(n) (n<=14) есть хотя бы один нулевой елемент. Определить количество елементов,больше 10,которые следуют за этим нулем. с++
отрицательние и положительные елементы C++
в заданом массиве t(8)=(3,2;-3,6;2,1;-2,1;-2,1;6,1;2,1;-3,2) на месте отрицательных елементов поставить нули ,а на месте положительных- их квадраты. если можно,напишите на с++
C++ Секторная диаграмма http://www.cyberforum.ru/cpp-beginners/thread399329.html
Помогите нарисовать секторную диаграмму где значения x={11,12,23,40,50,60} это ширина секторов.
C++ Создайте программу Напишите программу. Массив чисел (размерность 100) заполнить случайными значениям (диапазон значений от -100 до +100) Вычислить сумму и среднее значение элементов массива,значение которых превышает заданное значение А. Помогите пожалуйста .. Напишите такую программу Добавлено через 1 час 6 минут Пожалуйста нужна помощь.. Я не шарю в с++, а надо сдать такую программу. подробнее

Показать сообщение отдельно
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
05.12.2011, 16:11     Наследование и полиморфизм.
Вопрос следующий. Как мне вытащить функцию из родителя класса родителя, при условии что родителей тек. класса у меня 2! )) Запутанно? Ниже я описал все более детально:

В общем, есть класс который наследник двух родителей.
C++
1
class TCylinder  : public Circle, Pixel
эти два класса, Circle, Pixel тоже наследники класса Point.
т.е. общая схема выглядит вот как:
Point
||
/ \
/ \
Pixel Circle
| |
\ /
\ /
TCylinder
класс Point:
C++
1
2
3
4
5
6
public:
//...
    void Move(int delta_x, int delta_y); 
    Point(int x=0, int y=0);       //те. координаты точки
    virtual ~Point(){}
//...
класс Pixel
C++
1
2
3
4
5
6
7
8
class Pixel : public Point  
{
public:
enum Color{black, blue, green, red=4, white=15};
    Pixel(int x =0, int y =0, Color c =black); //т.е. к координатам точек добавляется цвет.
//...
    void Print()const;
//...
класс Circle
C++
1
2
3
4
5
6
7
8
9
class Circle : public Point  
{
public:
    Circle(int x, int y, float Diametr=0.1f); //т.е. просто к коорд точки добавили диаметр
                                                            // и теперь это круг.
    //...
    virtual void Print()const;
//...
};
класс TCylinder
C++
1
2
3
4
5
6
7
class TCylinder  : public Circle, Pixel  //наследует св-ва 2х классов.
{
public:
    TCylinder(int x =0, int y =0, float Diametr=0.1f,Color c =black); //содержит в себе только лишь
                                                                                       //параметры родителей.
//...
};
итак, теперь вопрос.
когда я хочу запустить класс TCylinder , делаю вот такую штуку:

C++
1
2
3
    TCylinder Cylinder(1,2);
    Cylinder.Move(34,16);
        Cylinder.Print();
соотв. На строке где "Move" VC++ ругается грязно таким образом:
C++
1
2
warning C4385: could be the 'Move' in base 'Point' of base 'Circle' of class 'TCylinder'
warning C4385: or the 'Move' in base 'Point' of base 'Pixel' of class 'TCylinder'
- и глубоко в душе я с ним согласен, т.к. класса поинт я не приглашал к себе в наследники,
и данная ф-я "Move" содержится в обоих родителях класса TCylinder а следовательно не понятно с какой отрабатывать. Если уважаемые знатоки сталкивались с подобной проблемой и захотят поделиться опытом, я буду крайне признателен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru