Проблема проектирования - одна функция вызывает все три - PullRequest
0 голосов
/ 20 августа 2011
class Feature{};

class IFat
{
   //init feature for IFat

   vector<Feature> vf;
};
class IThin
{
   //init feature for IThin
   vector<Feature> vf;
};

class ISlim
{
    //init feature for ISlim
    vector<Feature> vf;
};

void func(IFeature_Vector)
{
     //accessing vf depending on IFeature_Vector passed in
}

Я хотел бы знать, есть ли хороший аккуратный способ сделать один функционал, который может вызывать каждый экземпляр, не вызывая три раза для каждого случая.Мне жаль говорить это, потому что я знаю, что это проблема юрского периода, но я просто не могу придумать хорошее решение, хотя я так без ума от этого.Я надеюсь, вы понимаете мою проблему.Я благодарен, если вы могли бы помочь.

1 Ответ

1 голос
/ 20 августа 2011

Я думаю, вам стоит взглянуть на template программирование на C ++. Вот хорошее объяснение: http://www.cplusplus.com/doc/tutorial/templates/

Вы могли бы написать что-то вроде

template<class T> void func(T myVector) { ... };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...