Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Robert Kumanek
- #include<string>
- #include<iostream>
- /*Rozstrzygnac kwestie:
- // PrzegrodkaNaLiczby przegrodka ( 45.0 ); // ma wypisać jedną wartość 45
- // przegrodka.prezentuj();
- // PrzegrodkaNaLiczby przegrodka2 ( 45 ); // ma wypisać 47 zer
- //// przegrodka2.prezentuj();
- */
- class PrzegrodkaNaLiczby {
- public:
- bool isAnyValue;
- double value;
- unsigned int volume;
- std::string ( *foo )( unsigned int, double );
- void zeruj () {
- value = 0;
- volume = 0;
- foo = NULL;
- isAnyValue = false;
- }
- void prezentuj() {
- std::cout << "Prezentacja przegrodki na liczby" << std::endl;
- for ( unsigned int i = 1; i <= volume; i++ ){
- if ( foo != NULL) /*gdy foo ma w sobie jakas funkcje*/
- if ( isAnyValue )
- std::cout << foo ( i, value + i - 1 ) << std::endl;
- else
- std::cout << foo ( i, 0 ) << std::endl;
- else /*gdy foo nie ma zadnej funkcji*/
- if ( isAnyValue )
- std::cout << value + i - 1 << std::endl;
- else
- std::cout << 0 << std::endl;
- }
- }
- //===================== KONSTRUKTORY ==========================
- // PrzegrodkaNaLiczby ( double val ){
- // value = val;
- // volume = 1;
- // foo = NULL;
- // }
- PrzegrodkaNaLiczby ( unsigned int vol ) { // 0,1,0
- isAnyValue = false;
- value = 0;
- volume = vol;
- foo = NULL;
- }
- PrzegrodkaNaLiczby ( bool invokedFromAnother = false ) // 0,0,0
- : isAnyValue ( false ), value ( 0 ), volume ( 1 ), foo ( NULL )
- { if ( invokedFromAnother )std::cout << "Konstruktor przegrodki" << std::endl; }
- PrzegrodkaNaLiczby ( double val , unsigned int vol = 1 ) // 1,1,0 oraz 1,0,0
- : isAnyValue ( true ), value ( val ), volume ( vol ), foo ( NULL ) {}
- PrzegrodkaNaLiczby ( unsigned int vol, std::string ( *fo )( unsigned int, double ) ) // 0, 1, 1
- : isAnyValue ( false ), value ( 0 ), volume ( vol ), foo ( fo ) {}
- PrzegrodkaNaLiczby ( double val, unsigned int vol, std::string ( *fo )( unsigned int , double )) // 1, 1, 1
- : isAnyValue ( true ), value ( val ), volume ( vol ), foo ( fo ) {}
- //=================== KONSTRUKTOR KOPIUJĄCY ===================
- PrzegrodkaNaLiczby ( const PrzegrodkaNaLiczby &c, bool invokedFromAnother = false )
- : value ( c.value ), volume ( c.volume ), foo ( c.foo ), isAnyValue ( c.isAnyValue )
- { if ( invokedFromAnother )std::cout << "Konstruktor przegrodki" << std::endl; }
- //=================== DESTRUKTOR ==============================
- ~ PrzegrodkaNaLiczby ( ) { }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement