Софтуерно Инженерство
Loading...
+ Нов въпрос
Zmyrt avatar Zmyrt 3 Точки

Task 04 - Resources

Здравейте колеги! Имам проблем по 4-тата задача от домашното по тема 04. Advanced C++ Class Members .

Направих всичко по третия файл 'Resource.h' но не мога да разбера как да накарам програмата да се обръща към 'switch' функцията във  'ResourceType.h' за да ми извлича стойност за второто поле на обекта "Resource" .

Гледам че е предефиниран оператора '<<' във 'ResourceType.h' но не мога да измисля как да го извикам и с какви параметри така , че да ми присвои стойност за типът на клас 'Resource' .

Прилагам и кода  за 'Resource.h' 

https://pastebin.com/CM1q8dcu

Линк към условието и дадените готови файлове за задачата:

 Description and Code

Благодаря предварително 

Тагове:
0
C++ Advanced 22/12/2019 15:38:19
Filipbg avatar Filipbg 26 Точки
Best Answer

Мойта функция е тази за типовете ресурси:

  istream& operator>>(istream& inStream, ResourceType& resourceType)
  {
    string type;
    inStream >> type;
    if(type == "Presentation")
      resourceType = ResourceType::PRESENTATION;
    else if(type == "Demo")
      resourceType = ResourceType::DEMO;
    else if(type == "Video")
      resourceType = ResourceType::VIDEO;

    return inStream;
  }

Само дето трябва да се направи като friend в класа. Но както гледам вече си го направил.

0
Zmyrt avatar Zmyrt 3 Точки

А това как го комбинираш с getType() функцията , която се извиква в главната програма? Защото сега за тип ми ги дава     всичките [unknown] 

0
Filipbg avatar Filipbg 26 Точки

Използвах константна функция с пойнтера this:

    ResourceType getType() const
    {
      return this->type;
    }

 

0
Zmyrt avatar Zmyrt 3 Точки

Да де така съм я написал и аз тази функция ама иска още работи  :)

Благодаря стана задачата...малко я хакнах признавам , но мина Джъджа 

0