Witajcie :)
Mam do was prośbę, byście sprawdzili kilka zadań. Jeśli są błędy, niedociągnięcia to je poprawili.
A oto one
Zadanie 1.
Polecenie:
Proszę napisać program, zawierający klasę NaszaKlasa ze zmienną składową o nazwie 'lu' typu int niedostępną z zewnątrz, przeciążonym konstruktorem w wersji zero- i jednoargumentowej inicjalizującym wartość zmiennej 'lu', destruktorem, wypisującym komunikat "Niszcze klase" oraz publiczną funkcją składową o nazwie 'wlu', zwracającą wartość zmiennej 'lu' i wypisującą tę wartość na ekranie. W funkcji 'main' powinny być utworzone dwa obiekty klasy NaszaKlasa, w tym jeden dynamicznie, a funkcja 'wlu' powinna być dwukrotnie wywołana.
kod
#include <iostream>
using namespace std;
class NaszaKlasa
{
private:
int lu;
public:
NaszaKlasa();
NaszaKlasa( int a );
~NaszaKlasa();
int wlu( int lu )
{
cout << lu << endl;
return lu;
}
};
NaszaKlasa::NaszaKlasa()
{
lu = 0;
}
NaszaKlasa::NaszaKlasa( int a )
{
lu = a;
}
NaszaKlasa::~NaszaKlasa()
{
cout << "Niszcze klase" << endl;
}
int main()
{
NaszaKlasa ob1;
NaszaKlasa * ob2 = new NaszaKlasa();
ob1.wlu( 3 );
ob2->wlu( 4 );
delete ob2;
return 0;
}
Zadanie 2
Polecenie:
Proszę napisać program, który oprócz klasy NaszKlasa zawiera również dziedziczącą po niej klasie WaszaKlasa ze zmienna składową typu int o nazwie 'ln'. Składowa 'lu' klasy NaszaKlasa powinna być dostępna dla klas potomnych i tylko dla tych klas. Konstruktor klasy WaszaKlasa powinien być przeciążony i posiadać wersję zero- i dwuargumentową, przy czym wersja dwuargumentowa powinna wywoływać jednoargumentową wersję konstruktora klasy NaszaKlasa. Klasa WaszaKlasa powinna też zawierać funkcje składową o nazwie 'wlu2', zwracająca wartość 'ln' oraz wartości składowe 'lu' i 'ln'.
kod
#include <cstdlib>
#include <iostream>
using namespace std;
class NaszaKlasa
{
protected:
int lu;
public:
NaszaKlasa();
NaszaKlasa( int a );
~NaszaKlasa();
int wlu( int lu )
{
cout << lu << endl;
return lu;
}
};
NaszaKlasa::NaszaKlasa()
{
lu = 0;
}
NaszaKlasa::NaszaKlasa( int a )
{
lu = a;
}
NaszaKlasa::~NaszaKlasa()
{
cout << "Niszcze klase" << endl;
}
class WaszaKlasa
: public NaszaKlasa
{
public:
int ln;
WaszaKlasa();
WaszaKlasa( int a, int b );
int wlu2( int ln, int lu )
{
cout << lu << " " << ln << endl;
return ln;
}
};
WaszaKlasa::WaszaKlasa()
{
ln = 0;
}
WaszaKlasa::WaszaKlasa( int a, int b )
: NaszaKlasa( a )
{
;
ln = a;
lu = b;
}
int main()
{
NaszaKlasa ob1;
NaszaKlasa * ob2 = new NaszaKlasa();
WaszaKlasa ob3;
ob1.wlu( 3 );
ob2->wlu( 4 );
delete ob2;
ob3.wlu2( 5, 6 );
return 0;
}
Zadanie 3
Polecenie
Proszę napisać program, zawierający klasę Czworonog. klasa powinna zawierać dwie zmienne składowe typu long o nazwach 'ls' i 'ln', przy czym składowa 'ln' powinna być statyczna i zainicjalizowana wartością 4. Ponadto, klasa Czworonog powinna zawierać pusty zeroargumentowy kontstruktor i destruktor, wyświetlający napis "tu pogromca zwierzat", a także statyczną funkcję składową o nazwie 'pokaz_ln', która zwraca wartość zmiennej 'ln', a także wyświetla tę wartość. W funkcji 'main' należy utworzyć jeden obiekt klasy Czworonog, a także wywołać 'pokaz_ln'
kod
#include <iostream>
using namespace std;
class Czworonog
{
protected:
long ls;
static long ln;
public:
Czworonog();
~Czworonog();
static long pokaz_ln()
{
cout << ln << endl;
return ln;
}
};
Czworonog::Czworonog()
{
}
Czworonog::~Czworonog()
{
cout << "Tu pogromca zwierz¹t" << endl;
}
long Czworonog::ln = 4;
int main()
{
Czworonog ob1;
ob1.pokaz_ln();
return 0;
}
Zadanie 4
Polecenie:
Proszę napisać program zawierający klasę Deszcz z pustym konstruktorem zeroargumentowym, destruktorem wyświetlającym komunikat napis "precz z chmurami", oraz publiczną funkcje składową o nazwie 'pokaz' zwracającą wartość typu char i wyświetlającą napis "niech zaleje swiat". W funkcji 'main' powinny być utworzone dwa obiekty klasy Deszcz, w tym jeden dynamicznie, a funkcja pokaz powinna być dwukrotnie wywołana.
kod
#include <iostream>
using namespace std;
class Deszcz
{
public:
Deszcz();
~Deszcz();
public:
char pokaz()
{
cout << "Niech zaleje œwiat" << endl;
return( 'a' );
}
};
Deszcz::Deszcz()
{
}
Deszcz::~Deszcz()
{
cout << "Precz z chmurami" << endl;
}
int main()
{
Deszcz ob1;
Deszcz * ob2 = new Deszcz();
ob1.pokaz();
ob2->pokaz();
delete ob2;
return 0;
}
Zadanie 5
Polecenie:
Proszę napisać program który oprócz klasy Deszcz zawiera również dziedziczącą po niej klasę Burza z prywatną zmienną składową typu int o nazwie 'lps'. Konstruktor klasy Burza ma być przeciążony i posiadać wersję zero- i jednoargumentową przy czym obie wersje powinny wywoływać konstruktor klasy Deszcz oraz inicjalizować wartość zmiennej 'lps'. Klasa Burza powinna też zawierać funkcję składową o nazwie 'pokaz2', zwracającą wartość 'lps' oraz wyświetlającą wartości składowych zarówno tę wartość. W funkcji 'main' należy utworzyć dynamicznie obiekty klasy Deszcz, a także obiekt klasy Burza, wywołać funkcje 'pokaz' i 'pokaz2'.
kod
#include <iostream>
using namespace std;
class Deszcz
{
public:
Deszcz();
~Deszcz();
public:
char pokaz()
{
cout << "Niech zaleje œwiat" << endl;
return( 'a' );
}
};
Deszcz::Deszcz()
{
}
Deszcz::~Deszcz()
{
cout << "Precz z chmurami" << endl;
}
class Burza
: public Deszcz
{
private:
int lps;
public:
Burza();
Burza( int );
int pokaz2( int lps )
{
cout << lps << endl;
return lps;
}
};
Burza::Burza()
: Deszcz()
, lps( 3 )
{
}
Burza::Burza( int a )
: Deszcz()
, lps( 4 )
{
lps = a;
}
int main()
{
Deszcz * ob1 = new Deszcz;
Burza * ob2 = new Burza;
ob1->pokaz();
delete ob1;
ob2->pokaz2( 4 );
delete ob2;
return 0;
}
Zadanie 6
Polecenie:
Proszę napisać program, zawierający klasę Rower. Klasa powinna zawierać dwie zmienne składowe, jedną typu int o nazwie 'lk', drugą statyczną typu float o nazwie 'przebieg', przy czym składowa 'przebieg' powinna być zainicjalizowana wartością 40.0F. Ponadto, klasa Rower powinna zawierać jednoargumentowy konstruktor inicjalizujący wartość zmiennej 'lk' oraz destruktor, wyświetlający napis "miazdze rowery", a także statyczną funkcję składową o nazwie 'daj_przebieg', która zwraca wartość zmiennej 'przebieg', a także wyświetla tę wartość. W funkcji 'main' należy utworzyć jeden obiekt klasy Rower, a także wywołać funkcję 'daj_przebieg', przypisując zwracaną przez nią wartość zmiennej o nazwie 'uff'.
kod
#include <cstdlib>
#include <iostream>
using namespace std;
class Rower
{
int lk;
static float przebieg;
public:
Rower();
~Rower();
static float daj_przebieg();
};
Rower::Rower()
: lk( 3 )
{
}
Rower::~Rower()
{
cout << "Miazdze rowery" << endl;
}
float Rower::daj_przebieg()
{
cout << przebieg << endl;
return przebieg;
}
float Rower::przebieg = 40.0;
int main()
{
Rower ob1;
float uff = ob1.daj_przebieg();
cout << uff << endl;
return 0;
}
Będę bardzo wdzięczny za każdą pomoc.
Edit///
Jeszcze napiszę czego jestem najmniej pewien, co mi sprawia największą trudność.
- inicjalizacja wartości zmiennej w konstruktorze
- wywołanie konstruktora jednoarg. w konstruktorze dwuarg.
- zwracanie wartości typu char
- przeciążeni konstruktora
- pusty zaargumentowany konstruktor