#include <iostream>
#include <string>
#include <memory>
class Medium
{
std:: string titel;
bool status;
int ID;
static int currentID;
public :
Medium( std:: string initTitel) : titel( initTitel) , status( false ) , ID( currentID++ ) { }
virtual ~Medium( ) { }
virtual void ausgabe( ) const
{
std:: cout << "ID: " << ID << std:: endl ;
std:: cout << "Titel: " << titel << std:: endl ;
if ( status)
{
/** write your code */
std:: cout << "Something: (egal)" << std:: endl ;
}
else
{
std:: cout << "Status: Medium ist zurzeit nicht verliehen.(auch egal)" << std:: endl ;
}
}
} ;
int Medium:: currentID = 1 ;
class Buch: public Medium
{
private :
std:: string autor;
public :
//Buch() = default;
Buch( std:: string initTitel, std:: string initAutor) : Medium( initTitel) , autor( initAutor) { }
virtual ~Buch( ) { } ;
void ausgabe( ) const override
{
Medium:: ausgabe ( ) ;
std:: cout << "autor :" << autor << std:: endl ;
}
} ;
int main ( )
{
std:: unique_ptr < Medium> some_objects[ 2 ] ;
some_objects[ 0 ] = std:: make_unique < Medium> ( "Some Title" ) ;
some_objects[ 1 ] = std:: make_unique < Buch> ( "Title 2" , "user9775960" ) ;
for ( auto & obj_type: some_objects)
obj_type- > ausgabe( ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWVtb3J5PgoKY2xhc3MgTWVkaXVtCnsKICAgc3RkOjpzdHJpbmcgdGl0ZWw7CiAgIGJvb2wgc3RhdHVzOwogICBpbnQgSUQ7CiAgIHN0YXRpYyBpbnQgY3VycmVudElEOwpwdWJsaWM6CiAgIE1lZGl1bShzdGQ6OnN0cmluZyBpbml0VGl0ZWwpOiB0aXRlbChpbml0VGl0ZWwpLCBzdGF0dXMoZmFsc2UpLCBJRChjdXJyZW50SUQrKykge30KICAgdmlydHVhbCB+TWVkaXVtKCkge30KICAgdmlydHVhbCB2b2lkIGF1c2dhYmUoKSBjb25zdAogICB7CiAgICAgIHN0ZDo6Y291dCA8PCAiSUQ6ICIgPDwgSUQgPDwgc3RkOjplbmRsOwogICAgICBzdGQ6OmNvdXQgPDwgIlRpdGVsOiAiIDw8IHRpdGVsIDw8IHN0ZDo6ZW5kbDsKICAgICAgaWYoc3RhdHVzKQogICAgICB7CiAgICAgICAgIC8qKiB3cml0ZSB5b3VyIGNvZGUgKi8KICAgICAgICAgc3RkOjpjb3V0IDw8ICJTb21ldGhpbmc6IChlZ2FsKSIgPDwgc3RkOjplbmRsOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICBzdGQ6OmNvdXQgPDwgIlN0YXR1czogTWVkaXVtIGlzdCB6dXJ6ZWl0IG5pY2h0IHZlcmxpZWhlbi4oYXVjaCBlZ2FsKSIgPDwgc3RkOjplbmRsOwogICAgICB9CiAgIH0KfTsKaW50IE1lZGl1bTo6Y3VycmVudElEID0gMTsKCmNsYXNzIEJ1Y2g6IHB1YmxpYyBNZWRpdW0Kewpwcml2YXRlOgogICBzdGQ6OnN0cmluZyBhdXRvcjsKcHVibGljOgogICAvL0J1Y2goKSA9IGRlZmF1bHQ7CiAgIEJ1Y2goc3RkOjpzdHJpbmcgaW5pdFRpdGVsLCBzdGQ6OnN0cmluZyBpbml0QXV0b3IpOiBNZWRpdW0oaW5pdFRpdGVsKSwgYXV0b3IoaW5pdEF1dG9yKSB7fQogICB2aXJ0dWFsIH5CdWNoKCl7fTsKCiAgIHZvaWQgYXVzZ2FiZSgpY29uc3Qgb3ZlcnJpZGUKICAgewogICAgICBNZWRpdW06OmF1c2dhYmUoKTsKICAgICAgc3RkOjpjb3V0IDw8ICJhdXRvciA6IiA8PCBhdXRvciA8PCBzdGQ6OmVuZGw7CiAgIH0KfTsKaW50IG1haW4gKCkKewogICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaXVtPiBzb21lX29iamVjdHNbMl07CiAgIHNvbWVfb2JqZWN0c1swXSA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaXVtPigiU29tZSBUaXRsZSIpOwogICBzb21lX29iamVjdHNbMV0gPSBzdGQ6Om1ha2VfdW5pcXVlPEJ1Y2g+KCJUaXRsZSAyIiwgInVzZXI5Nzc1OTYwIik7CgogICBmb3IoYXV0byYgb2JqX3R5cGU6IHNvbWVfb2JqZWN0cykKICAgICAgb2JqX3R5cGUtPmF1c2dhYmUoKTsKICAgcmV0dXJuIDA7Cn0K