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

Передача параметров во виртуальные функции, перегрузка - C++

Восстановить пароль Регистрация
 
klik07
3 / 3 / 0
Регистрация: 17.11.2013
Сообщений: 33
27.11.2013, 21:39     Передача параметров во виртуальные функции, перегрузка #1
нужна помощь.
имеется абстрактный класс Base, объекты которого будут храниться в контейнере, который я сам реализовал.
наследники Base фигуры, такие как окружность, квадрат, отрезок и т.п.
В базовом-абстрактном классе описываются виртуальные функции, которые потом должны использоваться в классах-наследниках, но параметры там мне нужны другие.Например, функция load может иметь один параметр int для квадрата(длина стороны) и два параметра int int для окружности(координаты центра).
Как мне решить проблему((

чтобы было понятнее, что я привожу примерный кусок кода:
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
class Base {   // абстрактный клаас-предок
public:
    virtual void load(int a, int b)=NULL;
};
class Circle: public Base {
private:
        int x, y;
public:
        void load(int a, int b) {
             x = a;
             y = b;
        }
};
class Kvadrat: public Base {
private:
        int length;
public: 
        void load(int a) {
             length = a;
         }
...
...
...
...
...
...
...
...
Base *obj = new Circle;
obj->load(5,6);
...
...
...
...
...
...
...
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2013, 21:39     Передача параметров во виртуальные функции, перегрузка
Посмотрите здесь:

C++ Передача параметров функции с пoмощью указателя
C++ виртуальные и чисто виртуальные функции
Передача параметров функции по значению, ссылке и указателю C++
Передача массивов и параметров с одной функции в другую C++
C++ Передача массивов указателей в качестве параметров функции
Передача параметров функциям. Можно ли изменить этот параметр внутри функции C++
Передача параметров функции в main() C++
C++ Передача параметров функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6376 / 4842 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
27.11.2013, 21:50     Передача параметров во виртуальные функции, перегрузка #2
Цитата Сообщение от klik07 Посмотреть сообщение
В базовом-абстрактном классе описываются виртуальные функции, которые потом должны использоваться в классах-наследниках, но параметры там мне нужны другие.Например, функция load может иметь один параметр int для квадрата(длина стороны) и два параметра int int для окружности(координаты центра).
никак не сделаешь количество и тип параметров должны соответствовать иначе это будет другая функция
единственно что могу посоветовать параметры по умолчанию
например вот так
в базовом классе
load(int, int)
в квадрате
load(int a,int b=-1);
в круге
load (int x,int y)

но вообще пересмотри идеологию
например у квадрата тоже должен быть центр
у круга радиус или диаметр

соответственно это разные функции
я вижу при такой иерархии только одну виртуальную функцию Draw(рисование)
ну может еще вычисление площади или периметра
klik07
3 / 3 / 0
Регистрация: 17.11.2013
Сообщений: 33
01.12.2013, 20:56  [ТС]     Передача параметров во виртуальные функции, перегрузка #3
Цитата Сообщение от ValeryS Посмотреть сообщение
я вижу при такой иерархии только одну виртуальную функцию Draw(рисование)
ну может еще вычисление площади или периметра
не подскажите, как в методе класса использовать DrawEllipse и т.д. В общем, как описать функцию Draw
Yandex
Объявления
01.12.2013, 20:56     Передача параметров во виртуальные функции, перегрузка
Ответ Создать тему
Опции темы

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