I variantas 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 int main() 1.2 int main() 1.3 int main() class E }
class E2 : public E ;
int f(
int a)
void g()
Kas bus isvesta: .1 int main() catch (E2 & e2) catch (E & e) cout << "exit
i=" <<
i <<
endl;
return 0; }
.2 int main() 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ą f X 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 int main() 1.2 int main() 1.3 int main() class E }
class E2 : public E ;
int f(
int a)
void g()
Kas bus isvesta: .1 int main() catch (E & e) } catch (E2 & e2) catch (E & e)
cout << "exit i=" << i << endl;
return }
.2 int main() 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 elementus 2, po to 3; prie pradzios prijungia elementus 11, 12; tarp antrojo ir trečiojo elementų įterpia elementą 10; ismeta priespaskutinį elementą; panaudodama iteratorių perbėga konteinerį ir randa visų 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), kuri sudeda a su b operatoriaus + pagalba ir gautą reiksme priskirti a (a = a + b); void print(), kuri isveda lauką A į cout operatoriaus << pagalba. Panaudokite sią sabloninę klasę (sukurti klasės objektą, iskviesti jam add(),print()), kai sablono parametro reiksmė yra int. Parasykite klasę X, kurią būtų galima naudoti kaip sio sablono parametrą ir panaudokite sabloną su klase X. MANO ATSAKYMŲ VERSIJA I variantas F::F F::F B::B F::F F::F B::B D::D D::~D B::~B F::~F F::~F B::~B F::~F nesikompiliuoja,! 1-f()1 2-f()1 i=2 1-f()0 E catch E exit i=2 E catch E Abort (core dumped) #include <iostream> #include <memory> #include <algorithm> #include <vector> using namespace std; int main() #include <iostream> #include <memory> #include <algorithm> #include <string> using namespace std; template <class T> void f(T& a) class X { string val; public X(string v) : val(v) X operator*(int c) // būtinas, kad kompiliuotųsi f<T> friend ostream& operator<<(
ostream&
os, const X& x) //
nebūtinas, bet
naudingas testavimui int main() II variantas F::F F::F B::B F::F D::D D::~D F::~F B::~B F::~F F::~F F::F F::F F::~F F::~F Nesikompiliuoja 1-f()1 2-f()1 i=2 1-f()0 E catch E 1-f()-2 E catch E exit i=4 E catch E catch E2 Abort (core dumped) #include <iostream> #include <memory> #include <algorithm> #include <vector> using namespace std; int main() #include <iostream> #include <memory> #include <algorithm> #include <string> using namespace std; template <class T> class S { T a; public S(T _a) : a(_a) void add(T b) void print(void) class X { string val; public X(string v) : val(v) X operator const X b) // būtinas, kad kompiliuotųsi S<T> friend ostream& operator<<(ostream& os, const X& x) // būtinas, kad kompiliuotųsi S<T> int main()