Test Napisz co pojawi się na ekranie

Transkrypt

Test Napisz co pojawi się na ekranie
Języki i paradygmaty programowania
Przykładowe typy zadań
Test
1. Dana jest klasa
class Podstawowa { };
Dziedziczenie publiczne zostało zdefiniowane w:
[ ] (A) class Pochodna : private Podstawowa { };
[ ] (B) class Pochodna : public Podstawowa { };
[ ] (C) class Pochodna : Podstawowa { };
2. Jaka jest kolejność wywołania konstruktorów dla obiektu d klasy D, jeśli dana jest następująca
hierarchia klas:
class A { };
class B : public A { };
class C : public A { };
class D : public C { };
[ ] (A) A B C D
[ ] (B) A C D
[ ] (C) D C A
3. Jaka jest kolejność zakończenia pracy przez konstruktory dla obiektu d klasy D, jeśli dana jest
następująca hierarchia klas:
class A { };
class B : public A { };
class C : public A { };
class D : public C { };
[ ] (A) A B C D
[ ] (B) A C D
[ ] (C) D C A
4. Uwzględniając hierarchię klas z pytania powyŜszego, ustal, w jakiej kolejności są wywoływane
destruktory obiektu d klasy D.
[ ] (A) A C D
[ ] (B) D C A
[ ] (C) A B C D
5. Dana jest hierarchia klas
class X { };
class A : public X { };
class Y : public A { };
class B : private A { };
Która z poniŜszych linii jest błędna?
[ ] (A) X *wsk=new B;
[ ] (B) A *wsk=new Y;
[ ] (C) X *wsk=new Y;
6. Deklarację metod wirtualnych w klasie zaczynamy słowem kluczowym:
[ ] (A) virtual
[ ] (B) namespace
[ ] (C) template
7. Domyślny sposób dziedziczenia to dziedziczenie:
[ ] (A) publiczne
[ ] (B) chronione
[ ] (C) prywatne
8. Jaką etykietą jest poprzedzona sekcja klasy, z której elementów nie moŜne korzystać program
zewnętrzny, natomiast mogą korzystać klasy pochodne?
[ ] (A) private
[ ] (B) public
[ ] (C) protected
1
Języki i paradygmaty programowania
Przykładowe typy zadań
9. Dane są następujące definicje:
class A {public: void wypisz ( ) { } };
class B : public A {public: void wypisz ( ) { } };
B b;
Metodę wypisz z klasy A na rzecz obiektu b moŜna wywołać w następujący sposób:
[ ] (A) b.wypisz( );
[ ] (B) b.A::wypisz( );
[ ] (C) metody wypisz z klasy A na rzecz obiektu b nie moŜna wywołać
10. Zaznacz poprawne stwierdzenie.
[ ] (A) Konstruktory klasy są dziedziczone
[ ] (B) Konstruktory klasy nie są dziedziczone
[ ] (C) Dziedziczenie konstruktorów zaleŜy od tego, w której części klasy podstawowej zostały
zdefiniowane
11. Dane są
namespace A
{ void wypisz ( ) {cout<<"*";} }
namespace B
{ void wypisz ( ) {cout<<"?";} }
using namespace A;
Co pojawi się na ekranie po następującym wywołaniu
wypisz( );
[ ] (A) ?
[ ] (B) *
[ ] (C) powyŜsza linia wygeneruje błąd dwuznaczności
12. Klasa podstawowa powinna zawierać
[ ] (A) konstruktor wirtualny
[ ] (B) destruktor wirtualny
[ ] (C) tylko metody wirtualne
13. Czysto wirtualny destruktor
[ ] (A) musi być zdefiniowany w klasach pochodnych
[ ] (B) nie musi być zdefiniowany w klasach pochodnych
[ ] (C) nie musi być zdefiniowany w klasie podstawowej tak jak inne metody czysto wirtualne
14. PoniŜsza deklaracja:
template <class Typ> class Prostokat;
jest:
[ ] (A) deklaracją szablonu funkcji
[ ] (B) deklaracją szablonu klasy
[ ] (C) błędna
15. Dane są :
template <class T> T suma(T arg1, T arg2) {return arg1+arg2;}
double S=suma<int>(12.7, 13.8) ;
Zmienna S ma wartość :
[ ] (A) 26.5
[ ] (B) 26
[ ] (C) 25
Napisz co pojawi się na ekranie
Zadanie 1.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
2
Języki i paradygmaty programowania
protected:
int b;
public:
X(int x):b(x) {cout<<"konstruktor X\n";}
~X() {cout<<b<<"destruktor X\n";}
void metoda(int a) {b=a;}
};
Przykładowe typy zadań
class Y:public X //Jak zamiana public na private wpłynie na kod?
{
protected:
int a;
public:
Y(int x,int y):X(x),a(y) {cout<<"konstruktor Y\n";}
~Y() {cout<<a<<" "<<b<<"destruktor Y\n";}
};
int main()
{
X a(23);
Y b(2,4);
a.metoda(9);
b.metoda(12);
return 0;
}
Zadanie 2.
Napisz, co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x):b(x) {cout<<"konstruktor X\n";}
~X() {cout<<b<<"destruktor X\n";}
void metoda(int a) {b=a;}
};
class Y:public X //Jak zamiana public na private wpłynie na kod?
{
protected:
int a;
public:
Y(int x,int y):X(x),a(y) {cout<<"konstruktor Y\n";}
~Y() {cout<<a<<" "<<b<<"destruktor Y\n";}
};
int main()
{
X *a=new X(23);
X *b=new Y(2,4);
a->metoda(9);
b->metoda(12);
Języki i paradygmaty programowania
Przykładowe typy zadań
delete a;
delete b;
return 0;
}
Zadanie 3.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x):b(x) {cout<<"konstruktor X\n";}
virtual ~X() {cout<<b<<"destruktor X\n";}
void metoda(int a) {b=a;}
};
class Y:public X //Jak zamiana public na protected wpłynie na kod?
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y\n";}
~Y() {cout<<a<<" "<<b<<"destruktor Y\n";}
};
int main()
{
X *a=new X(23);
X *b=new Y(2, 4);
a->metoda(9);
b->metoda(12);
delete a;
delete b;
return 0;
}
Zadanie 4.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected: //Jak zamiana protected na private wpłynie na kod?
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
~X() {cout<<"destruktor X\n";}
void wypisz() const {cout<<b<<"\n";}
};
class Y:public X
{
protected:
int a;
3
4
Języki i paradygmaty programowania
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
Przykładowe typy zadań
class YY:public X
{};
int main()
{
X *a=new X(23);
Y *b=new Y(2, 4);
YY *c=new YY;
a->wypisz();
b->wypisz();
c->wypisz();
delete a;
delete b;
delete c;
return 0;
}
Zadanie 5.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";} //Co się stanie, gdy zrezygnujemy z wartości domyślnej?
~X() {cout<<"destruktor X\n";}
void wypisz() const {cout<<b<<"\n";}
};
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
{};
int main()
{
X *a=new X(23);
X *b=new Y(2, 4);
X *c=new YY;
a->wypisz();
b->wypisz();
5
Języki i paradygmaty programowania
Przykładowe typy zadań
c->wypisz();
delete a;
delete b;
delete c;
return 0;
}
Zadanie 6.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
virtual ~X() {cout<<"destruktor X\n";}
virtual void wypisz() const {cout<<b<<"\n";} //Uczyń z metody wypisz metodę czysto wirtualną oraz
// wprowadź niezbędne zmiany w programie
};
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
{};
int main()
{
X *a=new X(23);
X *b=new Y(2, 4);
X *c=new YY;
a->wypisz();
b->wypisz();
c->wypisz();
delete a;
delete b;
delete c;
return 0;
}
Zadanie 7.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
6
Języki i paradygmaty programowania
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
~X() {cout<<"destruktor X\n";}
void wypisz() const {cout<<b<<"\n";}
};
Przykładowe typy zadań
Języki i paradygmaty programowania
{};
Przykładowe typy zadań
void wywolaj(const X& arg)
{arg.wypisz(); }
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y\n";} // Czy moŜna w tej linii opuścić jawne wywołanie
// konstruktora klasy X? Dlaczego?
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
{};
void wywolaj(const X& arg)
{arg.wypisz(); }
int main()
{
X *a[3]={new X(23), new Y(2, 4), new YY};
for (int i=0;i<3;++i) wywolaj(*a[i]);
for (int i=0;i<3;++i) delete a[i];
return 0;
}
Zadanie 8.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
virtual ~X() {cout<<"destruktor X\n";}
virtual void wypisz() const {cout<<b<<"\n";}
};
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
7
int main()
{
X *a[3]={new X(23), new Y(2, 4), new YY};// Czy w przypadku abstrakcyjnej klasy X linia ta byłaby
// poprawna?
for (int i=0;i<3;++i) wywolaj(*a[i]);
for (int i=0;i<3;++i) delete a[i];
return 0;
}
Zadanie 9.
Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
virtual ~X() {cout<<"destruktor X\n";}
virtual void wypisz() const {cout<<b<<"\n";}
};
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y+\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
{};
void wywolaj(const X arg)
{arg.wypisz(); }
int main()
{
X *a[3]={new X(23), new Y(2, 4), new YY};
for (int i=0;i<3;++i) wywolaj(*a[i]);
for (int i=0;i<3;++i) delete a[i];
return 0;
}
Zadanie 10. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
8
Języki i paradygmaty programowania
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
X(const X& wzor):b(wzor.b+1){cout<<":-)\n";}
virtual ~X() {cout<<"destruktor X\n";}
virtual void wypisz() const {cout<<b<<"\n";}
};
Przykładowe typy zadań
Języki i paradygmaty programowania
Y(const Y& wzor):X(wzor), a(wzor.a-1) {cout<<":-)))\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
Przykładowe typy zadań
class YY:public X
{};
void wywolaj(const X& arg)
{arg.wypisz(); }
class Y:public X //Jak zamiana public na private wpłynie na kod?
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y+\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
{};
void wywolaj(const X& arg)
{arg.wypisz(); }
int main()
{
X *a[3]={new X(23), new Y(2, 4), new YY};
for (int i=0;i<3;++i) wywolaj(*a[i]);
for (int i=0;i<3;++i) delete a[i];
return 0;
}
Zadanie 11. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
X(const X& wzor):b(wzor.b+1) {cout<<":-)\n";} // Czy tu moŜna zrezygnować z referencji?
virtual ~X() {cout<<"destruktor X\n";}
virtual void wypisz() const {cout<<b<<"\n";}
};
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y+\n";}
9
int main()
{
X *a[3]={new X(23), new Y(2, 4), new YY};
for (int i=0;i<3;++i) wywolaj(*a[i]);
for (int i=0;i<3;++i) delete a[i];
return 0;
}
Zadanie 12. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X\n";}
X(const X& wzor):b(wzor.b+1) {cout<<":-)\n";}
virtual ~X() {cout<<"destruktor X\n";}
virtual void wypisz() const {cout<<b<<"\n";}
};
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y+\n";}
Y(const Y& wzor):X(wzor), a(wzor.a-1) {cout<<":-)))\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
{};
void wywolaj(const X& arg)
{arg.wypisz(); }
int main()
{
X *a[3]={new X(23), new Y(2, 4), new YY};
for (int i=0;i<3;++i) wywolaj(*a[i]);
10
Języki i paradygmaty programowania
Przykładowe typy zadań
for (int i=0;i<3;++i) delete a[i];
return 0;
}
Zadanie 13. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
class X
{
protected:
int b;
public:
X(int x=8):b(-x) {cout<<"konstruktor X+\n";}
X(const X& wzor):b(wzor.b) {cout<<":-)\n";}
virtual ~X() {cout<<"destruktor X\n";}
virtual void wypisz() const {cout<<b<<"\n";}
};
class Y:public X
{
protected:
int a;
public:
Y(int x, int y):X(x), a(y) {cout<<"konstruktor Y+\n";}
Y(const Y& wzor):X(wzor), a(wzor.a) {cout<<":-)))\n";}
~Y() {cout<<"destruktor Y\n";}
void wypisz() const {cout<<a<<" "<<b<<"\n";}
};
class YY:public X
{};
void wywolaj(const X& arg)
{arg.wypisz(); }
Języki i paradygmaty programowania
void wypisz() const {cout<<b<<endl;}
};
Przykładowe typy zadań
int main()
{
X<int> a(23);
a.wypisz();
a.zmien(9);
a.wypisz();
X<double> b(34.89);
b.wypisz();
b.zmien(12.2);
b.wypisz();
X<std::string> c("metody i narzedzia");
c.wypisz();
c.zmien("paradygmaty");
c.wypisz();
return 0;
}
Zadanie 15. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
using std::endl;
template <class Typ>
class X
{
protected:
Typ a;
public:
X(Typ x):a(x) {}
void zmien(Typ x) {a=x;}
void wypisz() const {cout<<b<<endl;}
};
int main()
{
X a[3]={X(23), Y(2, 4), YY()};
for (int i=0;i<3;++i) wywolaj(a[i]);
return 0;
}
Zadanie 14. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
using std::endl;
template<class Typ1, class Typ2>
class Y:public X<Typ1>
{
Typ2 b;
public:
Y(Typ1 x, Typ2 y):X<Typ1>(x), b(y) {}
void zmien(Typ2 x) {b=x;}
void wypisz() const { cout<<a<<" "<<b<<endl;}
};
template <class Typ>
class X
{
private:
Typ b;
public:
X(Typ x):b(x) {}
void zmien(Typ a) {b=a;}
int main()
{
Y<int, double> a(23, 7.9);
a.wypisz();
a.zmien(9.8);
a.wypisz();
a.X<int>::zmien(180);
a.wypisz();
11
12
Języki i paradygmaty programowania
Przykładowe typy zadań
Y<double, std::string> b(34.89, "metody");
b.wypisz();
b.zmien("as");
b.wypisz();
b.X<double>::zmien(123.67);
b.wypisz();
return 0;
}
Zadanie 16. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
using std::endl;
template <class Typ>
Typ suma(Typ a, Typ b)
{return a+b; }
int main()
{
cout<<suma(3, 9)<<endl;
cout<<suma(3.5, 9.67)<<endl;
cout<<suma<int>(2.4, 45)<<endl;
cout<<suma<double>(2.4, 45)<<endl;
return 0;
}
Zadanie 17. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
using std::endl;
template <class Typ1, class Typ2>
Typ2 suma(Typ1 a, Typ2 b)
{return a+b;
}
int main()
{
cout<<suma(3, 9.9)<<endl;
cout<<suma(3.5, 9)<<endl;
cout<<suma<double>(2.4, 45)<<endl;
cout<<suma<double>(2, 45.9)<<endl;
return 0;
}
Zadanie 18. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
using std::endl;
namespace punkt
{ int i=20, j=1, k=-2; }
Języki i paradygmaty programowania
{
using punkt::i;
++i;
cout<<i<<endl;
++j;
cout<<j<<endl;
using punkt::j;
++j;
cout<<j<<endl;
int k=15;
++k;
cout<<k<<endl;
}
Przykładowe typy zadań
int main( )
{
ruch( );
return 0;
}
Zadanie 19. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
using std::cout;
using std::endl;
namespace punkt
{ int i=20, j=1, k=-2; }
int j=5;
void ruch( )
{
++j;
cout<<j<<endl;
using namespace punkt;
++i;
cout<<i<<endl;
++::j;
cout<<::j<<endl;
++punkt::j;
cout<<punkt::j<<endl;
int k=15;
++k;
cout<<k<<endl;
++punkt::k;
cout<<punkt::k<<endl;
}
int main( )
{
ruch( );
return 0;
}
int j=5;
Zadanie 20. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
void ruch( )
13
14
Języki i paradygmaty programowania
Przykładowe typy zadań
using std::cout;
using std::endl;
template <class Typ>
class Schowek
{
protected:
void wypisz() {cout<<"Schowek "<<Typ(123.67)<<endl<<"***"<<endl;}
};
template <class T, class P>
class Sekret :public Schowek<P>
{
public:
void pisz() {cout<<"Sekret "<<T(345.98)<<endl; wypisz();}
};
int main( )
{
Sekret<int, double> S; S.pisz( );
Sekret<double, int> SS; SS.pisz( );
Sekret<double, double> SSS; SSS.pisz( );
Sekret<int, int> SSSS; SSSS.pisz( );
return 0;
}
Zadanie 21. Co pojawi się na ekranie po wykonaniu następujących linii kodu?
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template <class Typ> void wypisz(vector<Typ> &co);
int main( )
{
int tab[10]={3, 9, 20, 56, 3, 454, 45, 787, 4, 90};
vector<int> wek(tab+2, tab+5); wypisz(wek);
wek.push_back(100); wypisz(wek);
vector<int> wek2(wek.begin( ), wek.end( )); wypisz(wek2);
sort(wek2.begin( ), wek2.end( )); wypisz(wek2);
wek2.pop_back( );wypisz(wek2);
wek2.insert(wek2.begin()+5, -100); wypisz(wek2);
wek2.erase(wek2.begin()+1, wek2.begin()+3); wypisz(wek2);
return 0;
}
template <class Typ>
void wypisz(vector<Typ> &co)
{
if (co.empty( ))
{
cout<<"Brak elementow w kolekcji"<<endl;
return;
}
for (vector<Typ>::iterator it=co.begin( ); it!=co.end( );++it)
cout<<*it<<" ";
15
Języki i paradygmaty programowania
cout<<endl;
}
Przykładowe typy zadań
Uzupełnij
Zadanie 1.
Zdefiniuj abstrakcyjną klasę Ksztalt o trzech metodach oblicz_pole, oblicz_obwod
oraz rysuj oraz klasy Prostokat, Kwadrat, Trojkat. Wykorzystaj związki zachodzące między
tymi pojęciami w budowaniu hierarchii dziedziczenia. Napisz program testujący działanie tak
zdefiniowanej hierarchii dziedziczenia.
Zadanie 2.
Dodaj do programu elementy, potrzebne do wykonania następujących linii kodu:
int main( )
{
Moja1 a(15);
a.zmien(45);
Moja2 b(7, 78.9);
b.Moja1::wypisz();
b.wypisz();
return 0;
}
Zadanie 3.
Dodaj do programu elementy, potrzebne do wykonania następujących linii kodu:
int main ( )
{
X *A[5]={new X(23), new Y(5, 8), new Z};
for ( int i=0; i<5; ++i)
A[i]->wypisz();
for ( int i=0; i<5; ++i)
delete A[i];
return 0;
}
Zadanie 4.
Zakładając, Ŝe X jest klasą abstrakcyjną. Dodaj do programu elementy, potrzebne
do wykonania następujących linii kodu:
int main ( )
{
X *A[5]={new Y(23), new Y(8), new Z, new Y(23), new Z(7.9)};
for ( int i=0; i<5; ++i)
A[i]->wypisz();
for ( int i=0; i<5; ++i)
delete A[i];
return 0;
}
Zadanie 5.
Na podstawie informacji zamieszczonych poniŜej dodaj do programu elementy,
potrzebne do wykonania następujących linii kodu:
int main()
{
X obj(67);
X *wsk=new W(4.7, 5, 8);
wsk->wypisz();
delete wsk;
return 0;
}
Z::Z(double x, int y) : X(x), b(y) {}
void W::wypisz( ) {Z::wypisz(); cout<<c<<endl;}
void Y::wypisz( ) {cout<<b<<" "<<d<<endl;}
16
Języki i paradygmaty programowania
Przykładowe typy zadań
Zadanie 6.
Zakładając, Ŝe w klasach znajdują się deklaracje i wszystkie potrzebne etykiety,
natomiast za klasą znajdują się wszystkie niezbędne definicje, uzupełnij wykropkowane linie:
#include <iostream>
class X
{
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
};
X::X(int x): a(x) {}
.................................................................................................................
{
std::cout<<a<<std::endl;
}
class XX : public X
{
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
};
void XX::wypisz( ) const
{
X::wypisz( );
cout<<b<<endl;
}
.................................................................................................................
{
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
};
XXX::XXX(XX x, double y) : XX(x), c(y) {}
int main()
{
X x(10);
XX xx(x, 12.5);
XXX xxx(xx, 9.99);
X *wsk=&xx;
wsk->wypisz();
return 0;
}
17