Наследование, виртуальные функции, потоковый ввод-вывод

Рейтинг: 0Ответов: 1Опубликовано: 17.03.2011

Здравствуйте.

Я в ООП совершенный дуб. Нужно сделать такое задание:

Реализовать на языке C++ концепцию векторной функции скалярного аргумента (с привлечением механизма параметризованных классов) вида: у=[fi(a1,x),..., fi(an,x)], где

  • ai - параметры элемента вектор-фукнции;
  • x - скалярный аргумент вектор-функции;
  • fi(ai,x) - функция вычисления одного элемента вектор-функции (выбирается из множества функций, заданных студенту);
  • n- размерность вектор-функции, заданная пользователем.

Количество элементов вектора результата и аргумент x, для которого производится вычисление, задается пользователем. Вид функции, по которому вычисляется значение каждого элемента вектора результата, указывается пользователем из заданного множества параметризованных функций (параметры функций вводятся пользователем для каждого элемента вектора результата отдельно).

Литература есть, но очень смутно понимаю само задание, что к чему. Если можно поясните, пожалуйста, что примерно должно быть в результате и как это сделать. Возможно, есть примеры выполнения чего-то такого.

Спасибо.

Ответы

▲ 1

Я бы создал один класс

TBaseFunc : public TObject {    
    public:
    // здесь конструктор / деструктор

    virtual void __fastcall Calc() = 0;
    // чисто виртуальная функция
};

для описания функции одного элемента. И один класс:

TVectorFunc : public TObjectList{};

для массива функций одного элемента. А затем набор классов для каждой функции из списка:

TFunc1 : public TBaseFunc{};
TFunc2 : public TBaseFunc{};    
// ...
TFuncN : public TBaseFunc{};