Pastaba: laikykite, kad visur yra įtraukta: #include <iostream
> #include <memory> #include <algorithm> using namespace std;
class F ~F() }; class B B(const F& f_) : f(f_) ~B() }; class D : public B ~D() };
Kas bus isvesta: 1.1 intmain()
1.2 intmain()
1.3 intmain()
class E } class E2 : public E ;
int f(int a)
void g() Kas bus isvesta: .1 intmain() catch (E2 & e2) catch (E & e) cout << "exit i=" << i << endl; return 0; }
.2 intmain() catch (E & e) cout << "#4" << endl; } catch (E2 & e) cout << "exit" << endl; return 0; } Parasyti programą, kuri sukuria tusčią standartinės bibliotekos konteinerio vector<int> objektą; prie jo galo prijungia elementą 5, po to prie pradzios prijungia elementus 10, 1, 3; ismeta trečiąjį elementą, ir įterpia elementą 7 pries antrąjį elementą; panaudodama iteratorių perbėga konteinerį ir visus elementus spausdina.
Parasyti sabloninę funkciją void f(T& a), čia tipas T turi būti sablono parametras. Si funkcija turi padauginti a is int tipo konstantos 2 operatoriaus * pagalba. Parasykite kodo fragmentą, kuriame: 4.1. būtų panaudota (kviečiama) si funkcija, kai argumento tipas yra int 4.2 būtų aprasyta klasė X, kurią būtu galima naudoti kaip sio sablono parametrą ir iskvieskite funkciją fX klasės objektams.
II variantas
Pastaba: laikykite, kad visur yra įtraukta: #include <iostream> #include <memory> #include <algorithm> using namespace std;
class F ~F() }; class B ~B() }; class D : public B ~D() };
Kas bus isvesta: 1.1 intmain() 1.2 intmain() 1.3 intmain()
class E } class E2 : public E ;
int f(int a)
void g() Kas bus isvesta: .1 intmain() catch (E & e) } catch (E2 & e2) catch (E & e) cout << "exit i=" << i << endl; return } .2 intmain() catch (E & e) cout << "#4" << endl; } catch (E2 & e) cout << "exit" << endl; return 0; } Parasytiprogramą, kurisukuriatusčiąstandartinėsbibliotekoskonteinerio vector<int> objektą; priejogaloprijungiaelementus 2, po to 3; priepradziosprijungiaelementus 11, 12; tarp antrojoirtrečiojoelementųįterpiaelementą 10; ismetapriespaskutinįelementą; panaudodamaiteratoriųperbėgakonteinerįirrandavisųelementųsumą. Parasyti sabloninę klasę, sablono parametras turi būti tipas T. Si klasė turi turėti tipo T narį-lauką A, konstruktorių su vienu T tipo argumentu, kurio reiksmė inicializuoja lauką A, ir dvi funkcijas-narius: void add(T& b), kurisudeda a su b operatoriaus + pagalbairgautąreiksmepriskirti a (a = a + b); void print(), kuriisvedalauką A į coutoperatoriaus << pagalba. Panaudokitesiąsabloninęklasę (sukurtiklasėsobjektą, iskviesti jam add(),print()), kaisablonoparametroreiksmėyra int. Parasykiteklasę X, kuriąbūtųgalimanaudotikaipsiosablonoparametrą
irpanaudokitesablonąsuklase X. MANOATSAKYMŲVERSIJA I variantas
class X { stringval; public X(string v) : val(v) X operator*(int c) // būtinas, kadkompiliuotųsi f<T> friendostream& operator<<(ostream& os, const X& x) // nebūtinas, bet naudingastestavimui
template <class T> class S { T a; public S(T _a) : a(_a) void add(T b) void print(void)
class X { stringval; public X(string v) : val(v) X operator const X b) // būtinas, kadkompiliuotųsi S<T> friendostream& operator<<(ostream& os, const X& x) // būtinas, kadkompiliuotųsi S<T>
int main()
Document Info
Accesari:
1245
Apreciat:
Comenteaza documentul:
Nu esti inregistrat Trebuie sa fii utilizator inregistrat pentru a putea comenta