Task2. SequenceGenerator FullOPP
Здравейте,
Уж като гледах лекцията и разбрах за pure-virtual methods, но нещо в това упражнение не разбирам как да се използва generateSequence() в класовете FibonacciGenerator и SqrtGenerator.
Прави ли се някаква имплементация на generateSequence() в самия клас SequenceGenerator или само в другите?
И как се достъпват startInteger и endInteger от FibonacciGenerator и SqrtGenerator, ако те наследяват SequenceGenerator и следователно техните конструктори викат конструктора на SequenceGenerator?
Примерно как да използвам startInteger и endInteger, които се дават в SqrtGenerator(4,10) и отиват в конструктора на SequenceGenerator? После как да ги използвам за generateSequence()?
class SqrtGenerator : public SequenceGenerator{
public:
    SqrtGenerator(int startInteger, int endInteger):
        SequenceGenerator(startIndex,endIndex){
        }
    double* generateSequence(){
        int index = 0;
        std::stringstream ss;
        for(int i=startIndex; i<endIndex; i++){
            nums[index] = sqrt(i);
            ss << "Sqrt(" << i << ")";
            numNames[index] = ss.str();
            index++;
        }
        return nums;
    }
};

Мерси Жоро :)
Жоро, а грешно ли е само SequenceGenerator да има полета startIndex, endIndex, а наследяващите генератори да да имат само ctor, който "вика" ctor на SequenceGenerator-a и метода GenerateSequence() който ползва наследените полета и генерира поредицата?
Не бих казал че е грешно, защото никъде в условието не пише, че това трябва да е pure-virtual class (т.е. ООП интерфейс). Аз така бих го направил и бих пренесъл общите неща в наследяващ го абстрактен клас, който вече да наследя с конкретните Sqrt и Fibonacci, но това е по-скоро въпрос на стил, не е толкова на добри и лоши практики (разбира се зависи от това какво се иска в проекта, но предвид, че в случая не е уточнено, може да се направи както прецените)