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
Filipbg avatar Filipbg 26 Точки

Все пак ето ти мойто решение. Малко по-различно е от твойто, но върви без проблем:

https://pastebin.com/nsW2Yczw

0
22/12/2019 18:51:14
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.