├── surse ├── rez1.txt ├── rez10.txt ├── rez102.txt ├── rez114.txt ├── rez118.txt ├── rez16.txt ├── rez17.txt ├── rez19.txt ├── rez21.txt ├── rez26.txt ├── rez30.txt ├── rez34.txt ├── rez37.txt ├── rez40.txt ├── rez44.txt ├── rez47.txt ├── rez51.txt ├── rez56.txt ├── rez57.txt ├── rez58.txt ├── rez6.txt ├── rez60.txt ├── rez64.txt ├── rez66.txt ├── rez70.txt ├── rez71.txt ├── rez74.txt ├── rez77.txt ├── rez81.txt ├── rez85.txt ├── rez88.txt ├── rez9.txt ├── rez90.txt ├── rez94.txt ├── rez95.txt ├── rez99.txt ├── rez101.txt ├── rez105.txt ├── rez108.txt ├── rez116.txt ├── rez120.txt ├── rez3.txt ├── rez33.txt ├── rez49.txt ├── rez69.txt ├── rez75.txt ├── rez106.txt ├── rez82.txt ├── rez29.txt ├── rez5.txt ├── rez61.txt ├── rez62.txt ├── rez93.txt ├── rez18.txt ├── rez87.txt ├── rez50.txt ├── rez15.txt ├── rez41.txt ├── rez43.txt ├── rez13.txt ├── a.bin ├── rez65.txt ├── err20.txt ├── rez104.txt ├── err63.txt ├── err54.txt ├── err72.txt ├── err7.txt ├── err42.txt ├── err84.txt ├── err92.txt ├── err22.txt ├── err23.txt ├── err24.txt ├── err31.txt ├── err97.txt ├── err103.txt ├── err14.txt ├── err27.txt ├── err39.txt ├── err68.txt ├── err73.txt ├── err83.txt ├── err48.txt ├── err53.txt ├── err55.txt ├── err12.txt ├── err78.txt ├── err89.txt ├── err98.txt ├── err113.txt ├── err46.txt ├── err52.txt ├── err36.txt ├── err59.txt ├── err76.txt ├── err112.txt ├── err67.txt ├── err96.txt ├── err8.txt ├── err32.txt ├── err111.txt ├── err117.txt ├── err4.txt ├── err86.txt ├── err11.txt ├── err35.txt ├── err91.txt ├── err28.txt ├── err45.txt ├── err107.txt ├── err115.txt ├── err79.txt ├── err80.txt ├── err100.txt ├── err119.txt ├── err38.txt ├── err109.txt ├── prob63.cpp ├── prob91.cpp ├── prob45.cpp ├── prob102.cpp ├── prob76.cpp ├── prob100.cpp ├── prob49.cpp ├── prob83.cpp ├── prob112.cpp ├── prob48.cpp ├── prob10.cpp ├── prob34.cpp ├── prob90.cpp ├── prob38.cpp ├── prob105.cpp ├── prob64.cpp ├── prob99.cpp ├── prob74.cpp ├── prob60.cpp ├── prob66.cpp ├── prob77.cpp ├── prob24.cpp ├── prob86.cpp ├── prob40.cpp ├── prob53.cpp ├── prob108.cpp ├── prob116.cpp ├── prob120.cpp ├── prob109.cpp ├── prob110.cpp ├── prob18.cpp ├── prob106.cpp ├── prob103.cpp ├── prob70.cpp ├── prob72.cpp ├── prob85.cpp ├── prob94.cpp ├── prob46.cpp ├── prob16.cpp ├── prob25.cpp ├── prob26.cpp ├── prob59.cpp ├── prob67.cpp ├── prob1.cpp ├── prob2.cpp ├── prob37.cpp ├── err2.txt ├── prob3.cpp ├── err25.txt ├── prob118.cpp ├── prob42.cpp ├── prob51.cpp ├── prob80.cpp ├── prob111.cpp ├── prob44.cpp ├── prob96.cpp ├── prob55.cpp ├── prob73.cpp ├── prob81.cpp ├── prob11.cpp ├── prob35.cpp ├── prob56.cpp ├── prob47.cpp ├── prob65.cpp ├── prob114.cpp ├── prob97.cpp ├── prob17.cpp ├── prob4.cpp ├── prob7.cpp ├── prob15.cpp ├── prob28.cpp ├── prob57.cpp ├── prob58.cpp ├── prob30.cpp ├── prob31.cpp ├── prob6.cpp ├── prob12.cpp ├── prob89.cpp ├── prob36.cpp ├── prob82.cpp ├── prob27.cpp ├── prob71.cpp ├── err110.txt ├── prob88.cpp ├── prob93.cpp ├── prob113.cpp ├── prob32.cpp ├── prob8.cpp ├── prob69.cpp ├── prob95.cpp ├── prob117.cpp ├── prob54.cpp ├── prob19.cpp ├── prob43.cpp ├── prob61.cpp ├── prob62.cpp ├── prob68.cpp ├── prob22.cpp ├── prob119.cpp ├── prob75.cpp ├── prob41.cpp ├── prob52.cpp ├── prob14.cpp ├── prob107.cpp ├── prob84.cpp ├── prob104.cpp ├── prob115.cpp ├── prob101.cpp ├── prob33.cpp ├── prob9.cpp ├── prob92.cpp ├── prob39.cpp ├── prob21.cpp ├── prob87.cpp ├── prob50.cpp ├── prob23.cpp ├── prob79.cpp ├── prob98.cpp ├── prob29.cpp ├── prob78.cpp ├── prob20.cpp ├── prob5.cpp └── prob13.cpp ├── .gitignore ├── promo1.png ├── promo2.png ├── .dockerignore ├── Dockerfile ├── README.md ├── fly.toml ├── index.php └── template.php /surse/rez1.txt: -------------------------------------------------------------------------------- 1 | 28 -------------------------------------------------------------------------------- /surse/rez10.txt: -------------------------------------------------------------------------------- 1 | 0 -------------------------------------------------------------------------------- /surse/rez102.txt: -------------------------------------------------------------------------------- 1 | 3 -------------------------------------------------------------------------------- /surse/rez114.txt: -------------------------------------------------------------------------------- 1 | 55 -------------------------------------------------------------------------------- /surse/rez118.txt: -------------------------------------------------------------------------------- 1 | 4 -------------------------------------------------------------------------------- /surse/rez16.txt: -------------------------------------------------------------------------------- 1 | -12 -------------------------------------------------------------------------------- /surse/rez17.txt: -------------------------------------------------------------------------------- 1 | -11 -------------------------------------------------------------------------------- /surse/rez19.txt: -------------------------------------------------------------------------------- 1 | -17 -------------------------------------------------------------------------------- /surse/rez21.txt: -------------------------------------------------------------------------------- 1 | -15 -------------------------------------------------------------------------------- /surse/rez26.txt: -------------------------------------------------------------------------------- 1 | -12 -------------------------------------------------------------------------------- /surse/rez30.txt: -------------------------------------------------------------------------------- 1 | 6 -------------------------------------------------------------------------------- /surse/rez34.txt: -------------------------------------------------------------------------------- 1 | 0 -------------------------------------------------------------------------------- /surse/rez37.txt: -------------------------------------------------------------------------------- 1 | 7 -------------------------------------------------------------------------------- /surse/rez40.txt: -------------------------------------------------------------------------------- 1 | 5 -------------------------------------------------------------------------------- /surse/rez44.txt: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /surse/rez47.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /surse/rez51.txt: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /surse/rez56.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /surse/rez57.txt: -------------------------------------------------------------------------------- 1 | 0 0 -------------------------------------------------------------------------------- /surse/rez58.txt: -------------------------------------------------------------------------------- 1 | 0 0 -------------------------------------------------------------------------------- /surse/rez6.txt: -------------------------------------------------------------------------------- 1 | 6 -------------------------------------------------------------------------------- /surse/rez60.txt: -------------------------------------------------------------------------------- 1 | 200 -------------------------------------------------------------------------------- /surse/rez64.txt: -------------------------------------------------------------------------------- 1 | 0 -------------------------------------------------------------------------------- /surse/rez66.txt: -------------------------------------------------------------------------------- 1 | -18 -------------------------------------------------------------------------------- /surse/rez70.txt: -------------------------------------------------------------------------------- 1 | 28 -------------------------------------------------------------------------------- /surse/rez71.txt: -------------------------------------------------------------------------------- 1 | 14 -------------------------------------------------------------------------------- /surse/rez74.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /surse/rez77.txt: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /surse/rez81.txt: -------------------------------------------------------------------------------- 1 | 41 -------------------------------------------------------------------------------- /surse/rez85.txt: -------------------------------------------------------------------------------- 1 | 11 -------------------------------------------------------------------------------- /surse/rez88.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /surse/rez9.txt: -------------------------------------------------------------------------------- 1 | 1131 -------------------------------------------------------------------------------- /surse/rez90.txt: -------------------------------------------------------------------------------- 1 | -3 -------------------------------------------------------------------------------- /surse/rez94.txt: -------------------------------------------------------------------------------- 1 | -16 -------------------------------------------------------------------------------- /surse/rez95.txt: -------------------------------------------------------------------------------- 1 | 9 -------------------------------------------------------------------------------- /surse/rez99.txt: -------------------------------------------------------------------------------- 1 | 4 -------------------------------------------------------------------------------- /surse/rez101.txt: -------------------------------------------------------------------------------- 1 | 11315 -------------------------------------------------------------------------------- /surse/rez105.txt: -------------------------------------------------------------------------------- 1 | 20 22 -------------------------------------------------------------------------------- /surse/rez108.txt: -------------------------------------------------------------------------------- 1 | 22345 -------------------------------------------------------------------------------- /surse/rez116.txt: -------------------------------------------------------------------------------- 1 | 11 13 -------------------------------------------------------------------------------- /surse/rez120.txt: -------------------------------------------------------------------------------- 1 | 22345 -------------------------------------------------------------------------------- /surse/rez3.txt: -------------------------------------------------------------------------------- 1 | 6 21 3 -------------------------------------------------------------------------------- /surse/rez33.txt: -------------------------------------------------------------------------------- 1 | 1131 -------------------------------------------------------------------------------- /surse/rez49.txt: -------------------------------------------------------------------------------- 1 | 1500 -------------------------------------------------------------------------------- /surse/rez69.txt: -------------------------------------------------------------------------------- 1 | 5133 -------------------------------------------------------------------------------- /surse/rez75.txt: -------------------------------------------------------------------------------- 1 | 2030 -------------------------------------------------------------------------------- /surse/rez106.txt: -------------------------------------------------------------------------------- 1 | 7 7 7 7 14 -------------------------------------------------------------------------------- /surse/rez82.txt: -------------------------------------------------------------------------------- 1 | 0000-1500000 -------------------------------------------------------------------------------- /surse/rez29.txt: -------------------------------------------------------------------------------- 1 | 7 2 | 7 3 | 7 4 | -------------------------------------------------------------------------------- /surse/rez5.txt: -------------------------------------------------------------------------------- 1 | 7 2 | 7 3 | 7 4 | -------------------------------------------------------------------------------- /surse/rez61.txt: -------------------------------------------------------------------------------- 1 | x=20, y=22 2 | -------------------------------------------------------------------------------- /surse/rez62.txt: -------------------------------------------------------------------------------- 1 | x=20, y=22 2 | -------------------------------------------------------------------------------- /surse/rez93.txt: -------------------------------------------------------------------------------- 1 | tipuri diferite -------------------------------------------------------------------------------- /surse/rez18.txt: -------------------------------------------------------------------------------- 1 | a+5*sizeof(int) 2 | -------------------------------------------------------------------------------- /surse/rez87.txt: -------------------------------------------------------------------------------- 1 | 0012-302430-30424854 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py 2 | docker-compose.yml 3 | -------------------------------------------------------------------------------- /surse/rez50.txt: -------------------------------------------------------------------------------- 1 | B D D2 MM 2 | 7 3 | 7 4 | 7 5 | -------------------------------------------------------------------------------- /surse/rez15.txt: -------------------------------------------------------------------------------- 1 | 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -------------------------------------------------------------------------------- /surse/rez41.txt: -------------------------------------------------------------------------------- 1 | Da-mi un numar par: Numarul 1 e bun! 2 | -------------------------------------------------------------------------------- /surse/rez43.txt: -------------------------------------------------------------------------------- 1 | c1 c2 c1 c2 c1 c3 d3 d1 d2 d1 d2 d1 2 | -------------------------------------------------------------------------------- /surse/rez13.txt: -------------------------------------------------------------------------------- 1 | Da-mi un numar par: Numarul 2 nu e bun! 2 | -------------------------------------------------------------------------------- /promo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrgs/oopquiz/HEAD/promo1.png -------------------------------------------------------------------------------- /promo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrgs/oopquiz/HEAD/promo2.png -------------------------------------------------------------------------------- /surse/a.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrgs/oopquiz/HEAD/surse/a.bin -------------------------------------------------------------------------------- /surse/rez65.txt: -------------------------------------------------------------------------------- 1 | 9 2 | 8 3 | 7 4 | 6 5 | 5 6 | 4 7 | 3 8 | 2 9 | 1 10 | 0 11 | -------------------------------------------------------------------------------- /surse/err20.txt: -------------------------------------------------------------------------------- 1 | prob20.cpp:32:1: error: expected unqualified-id before ‘{’ token 2 | { 3 | ^ -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | # flyctl launch added from .gitignore 2 | **/*.py 3 | **/docker-compose.yml 4 | fly.toml 5 | -------------------------------------------------------------------------------- /surse/rez104.txt: -------------------------------------------------------------------------------- 1 | cb cd1 cd2 cb cd1 cb cd1 6 dd1 db dd1 db dd2 dd1 db dd1 db dd2 dd1 db -------------------------------------------------------------------------------- /surse/err63.txt: -------------------------------------------------------------------------------- 1 | prob63.cpp: In function ‘int main()’: 2 | prob63.cpp:15:5: error: ‘f’ was not declared in this scope 3 | f(d); 4 | ^ -------------------------------------------------------------------------------- /surse/err54.txt: -------------------------------------------------------------------------------- 1 | prob54.cpp: In function ‘int main()’: 2 | prob54.cpp:31:5: error: ‘ob’ was not declared in this scope 3 | ob.afis(); 4 | ^~ -------------------------------------------------------------------------------- /surse/err72.txt: -------------------------------------------------------------------------------- 1 | prob72.cpp: In function ‘int main()’: 2 | prob72.cpp:20:5: error: ‘cls’ was not declared in this scope 3 | cls d(37); 4 | ^~~ -------------------------------------------------------------------------------- /surse/err7.txt: -------------------------------------------------------------------------------- 1 | prob7.cpp: In function ‘int main()’: 2 | prob7.cpp:20:16: error: ‘B’ is an inaccessible base of ‘D’ 3 | B* p = new D; 4 | ^ -------------------------------------------------------------------------------- /surse/err42.txt: -------------------------------------------------------------------------------- 1 | prob42.cpp: In function ‘int main()’: 2 | prob42.cpp:21:11: error: ‘o’ was not declared in this scope 3 | cout<f1(p); 4 | ^~ -------------------------------------------------------------------------------- /surse/err24.txt: -------------------------------------------------------------------------------- 1 | prob24.cpp: In function ‘int main()’: 2 | prob24.cpp:16:9: error: base operand of ‘->’ has non-pointer type ‘A’ 3 | v[0]->afis(); 4 | ^~ -------------------------------------------------------------------------------- /surse/err31.txt: -------------------------------------------------------------------------------- 1 | prob31.cpp: In function ‘int main()’: 2 | prob31.cpp:20:16: error: ‘B’ is an inaccessible base of ‘D’ 3 | B* p = new D; //(1) 4 | ^ -------------------------------------------------------------------------------- /surse/err97.txt: -------------------------------------------------------------------------------- 1 | prob97.cpp: In function ‘int main()’: 2 | prob97.cpp:21:4: error: no match for ‘operator+=’ (operand types are ‘B’ and ‘int’) 3 | a += b; 4 | ~~^~~~ -------------------------------------------------------------------------------- /surse/err103.txt: -------------------------------------------------------------------------------- 1 | prob103.cpp: In function ‘int main()’: 2 | prob103.cpp:15:12: error: invalid conversion from ‘B*’ to ‘D*’ [-fpermissive] 3 | { D *p=new B; 4 | ^ -------------------------------------------------------------------------------- /surse/err14.txt: -------------------------------------------------------------------------------- 1 | prob14.cpp: In function ‘int main()’: 2 | prob14.cpp:30:15: error: no matching function for call to ‘B::B()’ 3 | B a(112), b, *c; 4 | ^ -------------------------------------------------------------------------------- /surse/err27.txt: -------------------------------------------------------------------------------- 1 | prob27.cpp: In function ‘int main()’: 2 | prob27.cpp:26:13: error: ‘o’ was not declared in this scope 3 | cout << o.get_i(); //(1) 4 | ^ -------------------------------------------------------------------------------- /surse/err39.txt: -------------------------------------------------------------------------------- 1 | prob39.cpp: In function ‘int main()’: 2 | prob39.cpp:39:13: error: call of overloaded ‘test(int&, int&)’ is ambiguous 3 | test(a,b); 4 | ^ -------------------------------------------------------------------------------- /surse/err68.txt: -------------------------------------------------------------------------------- 1 | prob68.cpp: In constructor ‘cls1::cls1(cls2)’: 2 | prob68.cpp:10:15: error: ‘p’ has incomplete type 3 | cls1(cls2 p) { vi = p.vi; } 4 | ^ -------------------------------------------------------------------------------- /surse/err73.txt: -------------------------------------------------------------------------------- 1 | prob73.cpp: In constructor ‘D::D(int)’: 2 | prob73.cpp:14:16: error: call of overloaded ‘B()’ is ambiguous 3 | D(int i = 25) { x = i; } 4 | ^ -------------------------------------------------------------------------------- /surse/err83.txt: -------------------------------------------------------------------------------- 1 | prob83.cpp: In function ‘int main()’: 2 | prob83.cpp:13:18: error: increment of read-only location ‘a.cls::f()’ 3 | int b = a.f()++; 4 | ^~ -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2.1-apache 2 | 3 | COPY ./ /var/www/html/ 4 | 5 | ENTRYPOINT [] 6 | CMD sed -i -e "s/Listen 80/Listen 8080/g" /etc/apache2/ports.conf && apache2-foreground 7 | -------------------------------------------------------------------------------- /surse/err48.txt: -------------------------------------------------------------------------------- 1 | prob48.cpp: In function ‘int main()’: 2 | prob48.cpp:11:16: error: ‘int cls1::get_x()’ is inaccessible within this context 3 | cout<minus(); 4 | ^ -------------------------------------------------------------------------------- /surse/err52.txt: -------------------------------------------------------------------------------- 1 | prob52.cpp: In function ‘int main()’: 2 | prob52.cpp:24:18: error: cannot call member function ‘int B::get_x()’ without object 3 | cout<f(*p2)); 4 | ^ -------------------------------------------------------------------------------- /surse/err117.txt: -------------------------------------------------------------------------------- 1 | prob117.cpp: In function ‘int main()’: 2 | prob117.cpp:26:27: error: passing ‘const X’ as ‘this’ argument discards qualifiers [-fpermissive] 3 | cout << p->tipareste(7); 4 | ^ -------------------------------------------------------------------------------- /surse/err4.txt: -------------------------------------------------------------------------------- 1 | prob4.cpp: In function ‘int main()’: 2 | prob4.cpp:20:20: error: cannot bind non-const lvalue reference of type ‘problema&’ to an rvalue of type ‘problema’ 3 | mister2(mister1()); 4 | ~~~~~~~^~ -------------------------------------------------------------------------------- /surse/err86.txt: -------------------------------------------------------------------------------- 1 | prob86.cpp: In static member function ‘static int cls::g()’: 2 | prob86.cpp:9:31: error: no matching function for call to ‘cls::f()’ 3 | static int g() { return f() / 2; } 4 | ^ -------------------------------------------------------------------------------- /surse/err11.txt: -------------------------------------------------------------------------------- 1 | prob11.cpp: In function ‘int main()’: 2 | prob11.cpp:21:10: error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream}’ and ‘A’) 3 | cout << a1 + a2; 4 | ~~~~~^~~~~~~~~~ -------------------------------------------------------------------------------- /surse/err35.txt: -------------------------------------------------------------------------------- 1 | prob35.cpp: In function ‘int main()’: 2 | prob35.cpp:21:10: error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream}’ and ‘A’) 3 | cout << a1 + a2; 4 | ~~~~~^~~~~~~~~~ -------------------------------------------------------------------------------- /surse/err91.txt: -------------------------------------------------------------------------------- 1 | prob91.cpp: In member function ‘int& A::f() const’: 2 | prob91.cpp:10:26: error: binding reference of type ‘int&’ to ‘const int’ discards qualifiers 3 | int& f() const { return x; } 4 | ^ -------------------------------------------------------------------------------- /surse/err28.txt: -------------------------------------------------------------------------------- 1 | prob28.cpp: In function ‘int main()’: 2 | prob28.cpp:20:20: error: cannot bind non-const lvalue reference of type ‘problema&’ to an rvalue of type ‘problema’ 3 | mister2(mister1()); //(1) 4 | ~~~~~~~^~ -------------------------------------------------------------------------------- /surse/err45.txt: -------------------------------------------------------------------------------- 1 | prob45.cpp: In member function ‘int& cls::f() const’: 2 | prob45.cpp:8:28: error: binding reference of type ‘int&’ to ‘const int’ discards qualifiers 3 | int &f() const{ return x;} 4 | ^ -------------------------------------------------------------------------------- /surse/err107.txt: -------------------------------------------------------------------------------- 1 | prob107.cpp: In member function ‘int C::get_z()’: 2 | prob107.cpp:29:26: error: ‘int A::get_x()’ is inaccessible within this context 3 | int get_z() { return get_x() + get_y() + z; } 4 | ^~~~~ -------------------------------------------------------------------------------- /surse/err115.txt: -------------------------------------------------------------------------------- 1 | prob115.cpp: In member function ‘int C::get_z()’: 2 | prob115.cpp:28:26: error: ‘int A::get_x()’ is inaccessible within this context 3 | int get_z() { return get_x() + get_y() + z; } 4 | ^~~~~ -------------------------------------------------------------------------------- /surse/err79.txt: -------------------------------------------------------------------------------- 1 | prob79.cpp: In function ‘std::ostream& operator<<(std::ostream&, const D&)’: 2 | prob79.cpp:35:17: error: passing ‘const D’ as ‘this’ argument discards qualifiers [-fpermissive] 3 | o << a[i]; 4 | ^ -------------------------------------------------------------------------------- /surse/err80.txt: -------------------------------------------------------------------------------- 1 | prob80.cpp: In member function ‘D D::operator+(const D&)’: 2 | prob80.cpp:16:38: error: ‘int B::x’ is private within this context 3 | D operator+(const D& a) { return x + a.x; } 4 | ^ -------------------------------------------------------------------------------- /surse/err100.txt: -------------------------------------------------------------------------------- 1 | prob100.cpp: In constructor ‘A::A(int, int)’: 2 | prob100.cpp:7:29: error: ‘int A::y’ is a static data member; it can only be initialized at its definition 3 | public: A(int i,int j):x(i),y(j){} 4 | ^ -------------------------------------------------------------------------------- /surse/err119.txt: -------------------------------------------------------------------------------- 1 | prob119.cpp: In member function ‘int C::get_z()’: 2 | prob119.cpp:14:33: error: ‘int A::get_x()’ is inaccessible within this context 3 | int get_z(){ return get_x()+get_y()+z; } }; 4 | ^~~~~ -------------------------------------------------------------------------------- /surse/err38.txt: -------------------------------------------------------------------------------- 1 | prob38.cpp: In instantiation of ‘X f(X, Y) [with X = int*; Y = int*]’: 2 | prob38.cpp:18:17: required from here 3 | prob38.cpp:8:13: error: invalid operands of types ‘int*’ and ‘int*’ to binary ‘operator+’ 4 | return x+y; 5 | ~^~ -------------------------------------------------------------------------------- /surse/err109.txt: -------------------------------------------------------------------------------- 1 | prob109.cpp: In member function ‘X X::f2() const’: 2 | prob109.cpp:7:33: error: passing ‘const X’ as ‘this’ argument discards qualifiers [-fpermissive] 3 | X f2() const { int i=this->f1(); return X(34-i); }}; 4 | ^ -------------------------------------------------------------------------------- /surse/prob63.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls 5 | { 6 | public: 7 | int x; 8 | cls() { x = 3; } 9 | void f(cls &c) { cout << c.x; } 10 | }; 11 | 12 | int main() 13 | { 14 | const cls d; 15 | f(d); 16 | } -------------------------------------------------------------------------------- /surse/prob91.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class A 6 | { 7 | int x; 8 | public: 9 | A(int i = 25) { x = i; } 10 | int& f() const { return x; } 11 | }; 12 | int main() 13 | { 14 | A ob(5); 15 | cout << ob.f(); 16 | return 0; 17 | } -------------------------------------------------------------------------------- /surse/prob45.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls 5 | { 6 | int x; 7 | public: cls(int i=3) {x=i;} 8 | int &f() const{ return x;} 9 | }; 10 | int main() 11 | { 12 | const cls a(-3); 13 | int b=a.f(); 14 | cout< 2 | using namespace std; 3 | 4 | template 5 | int functie(X x, X y) 6 | { return x+y; 7 | } 8 | int functie(int & x, int *y) 9 | { return x-*y; 10 | } 11 | int main() 12 | { int a=7, *b=new int(4); 13 | cout< 2 | using namespace std; 3 | class cls { 4 | int x; 5 | 6 | public: 7 | cls(int i = 25) { x = i; } 8 | int f(); 9 | }; 10 | int cls::f() { return x; } 11 | int main() 12 | { 13 | const cls d(15); 14 | cout << d.f(); 15 | return 0; 16 | } -------------------------------------------------------------------------------- /surse/prob100.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { int x; 6 | static int y; 7 | public: A(int i,int j):x(i),y(j){} 8 | int f() const;}; 9 | int A::y; 10 | int A::f() const {return y;} 11 | int main() 12 | { const A a(21,2); 13 | cout< 2 | using namespace std; 3 | class cls 4 | { 5 | int x; 6 | 7 | public: 8 | cls(int y) { x = y; } 9 | friend int operator*(cls a, cls b) { return (a.x * b.x); } 10 | }; 11 | int main() 12 | { 13 | cls m(100), n(15); 14 | cout << m * n; 15 | return 0; 16 | } -------------------------------------------------------------------------------- /surse/prob83.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | int x; 5 | 6 | public: 7 | cls(int i = -20) { x = i; } 8 | const int& f() { return x; } 9 | }; 10 | int main() 11 | { 12 | cls a(14); 13 | int b = a.f()++; 14 | cout << b; 15 | return 0; 16 | } -------------------------------------------------------------------------------- /surse/prob112.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | int x; 5 | 6 | public: 7 | cls(int y) { x = y; } 8 | int operator*(cls a, cls b) { return (a.x * b.x); } 9 | }; 10 | int main() 11 | { 12 | cls m(100), n(15); 13 | cout << m * n; 14 | return 0; 15 | } -------------------------------------------------------------------------------- /surse/prob48.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls1 5 | { protected: int x; 6 | public: cls1(int i=10) { x=i; } 7 | int get_x() { return x;} }; 8 | class cls2: cls1 9 | { public: cls2(int i):cls1(i) {} }; int main() 10 | { cls2 d(37); 11 | cout< 2 | using namespace std; 3 | template 4 | T f(T x, U y) 5 | { 6 | return x + y; 7 | } 8 | int f(int x, int y) 9 | { 10 | return x - y; 11 | } 12 | int main() 13 | { 14 | int *a = new int(3), b(23); 15 | cout << *f(a, b); 16 | return 0; 17 | } -------------------------------------------------------------------------------- /surse/prob34.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | template 4 | T f(T x, U y) 5 | { 6 | return x + y; 7 | } 8 | int f(int x, int y) 9 | { 10 | return x - y; 11 | } 12 | int main() 13 | { 14 | int *a = new int(3), b(23); 15 | cout << *f(a, b); 16 | return 0; 17 | } -------------------------------------------------------------------------------- /surse/prob90.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | template 4 | int f(T x, T y) 5 | { 6 | return x + y; 7 | } 8 | int f(int x, int y) 9 | { 10 | return x - y; 11 | } 12 | int main() 13 | { 14 | int a = 5; 15 | float b = 8.6; 16 | cout << f(a, b); 17 | return 0; 18 | } -------------------------------------------------------------------------------- /surse/prob38.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | template 5 | X f(X x, Y y) 6 | { 7 | return x+y; 8 | } 9 | int *f(int *x,int y) 10 | { 11 | return x-y; 12 | } 13 | int main() 14 | { 15 | int *a=new int(200), *b=a; 16 | cout<<*f(a,b); 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /surse/prob105.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { static int *x; 6 | public: A() {} 7 | int get_x() { return (++(*x))++; } }; 8 | int *A::x(new int(19)); 9 | int main() 10 | { A *p=new A,b; 11 | cout<get_x(); 13 | return 0; 14 | } -------------------------------------------------------------------------------- /surse/prob64.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls { 5 | public: 6 | int x, y; 7 | cls(int i = 0, int j = 0) 8 | { 9 | x = i; 10 | y = j; 11 | } 12 | }; 13 | 14 | int main() 15 | { 16 | cls a, b, c[3] = { cls(1, 1), cls(2, 2), a }; 17 | cout << c[2].x; 18 | } -------------------------------------------------------------------------------- /surse/prob99.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { protected: static int x; 6 | private: int y; 7 | public: A(int i) { x=i; y=-i+4; } 8 | int put_x(A a) { return a.x+a.y; } }; 9 | int A::x=7; 10 | int main() 11 | { A a(10); 12 | cout< 2 | using namespace std; 3 | class cls { 4 | int vi; 5 | 6 | public: 7 | cls(int v = 37) { vi = v; } 8 | friend int& f(cls); 9 | }; 10 | int& f(cls c) { return c.vi; } 11 | int main() 12 | { 13 | const cls d(15); 14 | f(d) = 8; 15 | cout << f(d); 16 | return 0; 17 | } -------------------------------------------------------------------------------- /surse/prob60.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls { 5 | public: 6 | float sa; 7 | cls(float s = 0) { sa = s; } 8 | operator float() { return sa; } 9 | float f(float c) { return (sa * (1 + c / 100)); } 10 | }; 11 | 12 | int main() 13 | { 14 | cls p(100); 15 | cout << p.f(p); 16 | } -------------------------------------------------------------------------------- /surse/prob66.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | template 4 | int functie(X x, X y) 5 | { 6 | return x + y; 7 | } 8 | int functie(int x, int *y) 9 | { 10 | return x - *y; 11 | } 12 | int main() 13 | { 14 | int a = 27, *b = new int(45); 15 | cout << functie(a, b); 16 | return 0; 17 | } -------------------------------------------------------------------------------- /surse/prob77.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | template 4 | tip dif(tip x, tip y) 5 | { 6 | return x - y; 7 | } 8 | unsigned dif(unsigned x, unsigned y) 9 | { 10 | return x >= y ? x - y : y - x; 11 | } 12 | int main() 13 | { 14 | unsigned i = 7, j = 8; 15 | cout << dif(i, j); 16 | return 0; 17 | } -------------------------------------------------------------------------------- /surse/prob24.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | 5 | class A 6 | { 7 | int n; 8 | 9 | public: 10 | A(int x) { n = x; } 11 | void afis() { cout << n; } 12 | }; 13 | int main() 14 | { 15 | A v[] = {*(new A(3)), *(new A(7))}; 16 | v[0]->afis(); 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /surse/prob86.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | static int x; 5 | 6 | public: 7 | cls(int i = 1) { x = i; } 8 | cls f(cls a) { return x + a.x; } 9 | static int g() { return f() / 2; } 10 | }; 11 | int cls::x = 7; 12 | int main() 13 | { 14 | cls ob; 15 | cout << cls::g(); 16 | return 0; 17 | } -------------------------------------------------------------------------------- /surse/prob40.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { 6 | int valoare; 7 | public: A(int param1=3):valoare(param1){} 8 | int getValoare(){return this->valoare;} 9 | }; 10 | int main() 11 | { 12 | A vector[]={*(new A(3)),*(new A(4)),*(new A(5)),*(new A(6)) }; 13 | cout< 2 | using namespace std; 3 | class cls 4 | { int x; 5 | public: cls(int i) { x=i; } 6 | int set_x(int i) { int y=x; x=i; return y; } 7 | int get_x(){ return x; } }; 8 | int main() 9 | { cls *p=new cls[10]; 10 | int i=0; 11 | for(;i<10;i++) p[i].set_x(i); 12 | for(i=0;i<10;i++) cout< 2 | using namespace std; 3 | 4 | class cls 5 | { int x; 6 | public: cls(int i=2) { x=i; } 7 | int set_x(int i) { int y=x; x=i; return y; } 8 | int get_x(){ return x; } }; 9 | int main() 10 | { cls *p=new cls[15]; 11 | for(int i=2;i<8;i++) p[i].set_x(i); 12 | for(int i=1;i<6;i++) cout< 2 | using namespace std; 3 | class A 4 | { 5 | static int *x; 6 | 7 | public: 8 | A() {} 9 | int get_x() { return (++(*x))++; } 10 | }; 11 | int *A::x(new int(10)); 12 | int main() 13 | { 14 | A *p = new A, b; 15 | cout << b.get_x() << " "; 16 | cout << p->get_x(); 17 | return 0; 18 | } -------------------------------------------------------------------------------- /surse/prob120.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls 4 | { int x; 5 | public: cls(int i=2) { x=i; } 6 | int set_x(int i) { int y=x; x=i; return y; } 7 | int get_x(){ return x; } }; 8 | int main() 9 | { cls *p=new cls[15]; 10 | for(int i=2;i<8;i++) p[i].set_x(i); 11 | for(int i=1;i<6;i++) cout< 2 | using namespace std; 3 | 4 | struct X { int i; 5 | public: X(int ii ) { i = ii; }; 6 | int f1() { return i; } 7 | X f2() const { int i=this->f1(); return X(34-i); }}; 8 | const X f3() { return X(16); } 9 | int f4(const X& x) { return x.f1(); } 10 | int main() {X ob(11); 11 | cout< 2 | using namespace std; 3 | 4 | class A 5 | { protected: static int x; 6 | public: A(int i=1) {x=i; } 7 | int get_x() { return x; } 8 | int& set_x(int i) { int y=x; x=i; return y;} 9 | A operator=(A a1) { set_x(a1.get_x()); return a1;} 10 | } a(33); 11 | int main() 12 | { A a(18), b(7); 13 | cout<<(b=a).set_x(27); 14 | return 0; 15 | } -------------------------------------------------------------------------------- /surse/prob18.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | template 5 | T fun(T x, U y) 6 | { 7 | return x + y; 8 | } 9 | int fun(int x, int y) 10 | { 11 | return x - y; 12 | } 13 | int fun(int x) 14 | { 15 | return x + 1; 16 | } 17 | int main() 18 | { 19 | int *a = new int(10), b(5); 20 | cout << fun(a, b); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /surse/prob106.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class X { int i; 5 | public: X(int ii = 5) { i = ii; cout<< i<< " ";}; 6 | const int tipareste(int j) const { cout<tipareste(7); 14 | return 0; 15 | } -------------------------------------------------------------------------------- /surse/prob103.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class B 5 | { int i; 6 | public: B() { i=80; } 7 | virtual int get_i() { return i; } 8 | }; 9 | class D: public B 10 | { int j; 11 | public: D() { j=27; } 12 | int get_j() {return j; } 13 | }; 14 | int main() 15 | { D *p=new B; 16 | cout<get_i(); 17 | cout<<((D*)p)->get_j(); 18 | return 0; 19 | } -------------------------------------------------------------------------------- /surse/prob70.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls1 { 4 | protected: 5 | int x; 6 | 7 | public: 8 | cls1() { x = 13; } 9 | }; 10 | class cls2 : public cls1 { 11 | int y; 12 | 13 | public: 14 | cls2() { y = 15; } 15 | int f(cls2 ob) { return (ob.x + ob.y); } 16 | }; 17 | int main() 18 | { 19 | cls2 ob; 20 | cout << ob.f(ob); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /surse/prob72.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls1 { 4 | protected: 5 | int x; 6 | 7 | public: 8 | cls1(int i = 10) { x = i; } 9 | int get_x() { return x; } 10 | }; 11 | class cls2 : cls1 { 12 | public: 13 | cls2(int i) 14 | : cls1(i) 15 | { 16 | } 17 | }; 18 | int main() 19 | { 20 | cls d(37); 21 | cout << d.get_x(); 22 | return 0; 23 | } -------------------------------------------------------------------------------- /surse/prob85.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int x; 5 | 6 | public: 7 | B(int i = 17) { x = i; } 8 | int get_x() { return x; } 9 | operator int() { return x; } 10 | }; 11 | class D : public B { 12 | public: 13 | D(int i = -16) 14 | : B(i) 15 | { 16 | } 17 | }; 18 | int main() 19 | { 20 | D a; 21 | cout << 27 + a; 22 | return 0; 23 | } -------------------------------------------------------------------------------- /surse/prob94.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class A 6 | { 7 | int x; 8 | public: A(int i = 17) { x = i; } 9 | int get_x() { return x; } 10 | }; 11 | class B 12 | { 13 | int x; 14 | public: B(int i = -16) { x = i; } 15 | operator A() { return x; } 16 | int get_x() { return x; } 17 | }; 18 | int main() 19 | { 20 | B a; 21 | A b = a; 22 | cout << b.get_x(); 23 | return 0; 24 | } -------------------------------------------------------------------------------- /surse/prob46.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class B 5 | { 6 | protected: int x; 7 | public: B(int i=0) {x=i;} 8 | virtual B minus() {return (1-x);} 9 | }; 10 | class D: public B 11 | { 12 | public: D(int i=0):B(i) {} 13 | void afisare() {cout<minus(); 19 | p1->afisare(); 20 | return 0; 21 | } -------------------------------------------------------------------------------- /surse/prob16.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A { 5 | protected: 6 | int x; 7 | 8 | public: 9 | A(int i = 14) { x = i; } 10 | }; 11 | class B : A { 12 | public: 13 | B() 14 | : A(2) 15 | { 16 | } 17 | B(B& b) { x = b.x - 14; } 18 | void afisare() { cout << x; } 19 | }; 20 | int main() 21 | { 22 | B b1, b2(b1); 23 | b2.afisare(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob25.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class A { 4 | static int x; 5 | 6 | public: 7 | A(int i = 0) { x = i; } 8 | int get_x() { return x; } 9 | int& set_x(int i) { x = i; } 10 | A operator=(A a1) 11 | { 12 | set_x(a1.get_x()); 13 | return a1; 14 | } 15 | }; 16 | int main() 17 | { 18 | A a(212), b; 19 | cout << (b = a).get_x(); 20 | return 0; 21 | } -------------------------------------------------------------------------------- /surse/prob26.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A { 5 | protected: 6 | int x; 7 | 8 | public: 9 | A(int i = 14) { x = i; } 10 | }; 11 | class B : A { 12 | public: 13 | B() 14 | : A(2) 15 | { 16 | } 17 | B(B& b) { x = b.x - 14; } 18 | void afisare() { cout << x; } 19 | }; 20 | int main() 21 | { 22 | B b1, b2(b1); 23 | b2.afisare(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob59.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class B { 5 | int x; 6 | 7 | public: 8 | B(int v) { v = x; } 9 | int get_x() { return x; } 10 | }; 11 | 12 | class D : private B { 13 | int y; 14 | 15 | public: 16 | D(int v) 17 | : B(v) 18 | { 19 | } 20 | int get_x() { return x; } 21 | }; 22 | 23 | int main() 24 | { 25 | D d(10); 26 | cout << d.get_x(); 27 | } -------------------------------------------------------------------------------- /surse/prob67.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class Y; 5 | 6 | class Z; 7 | 8 | class X { 9 | int x; 10 | 11 | public: 12 | X(int n = 0) { x = n; } 13 | friend Y; 14 | }; 15 | 16 | class Y { 17 | int y; 18 | friend Z; 19 | }; 20 | 21 | class Z { 22 | public: 23 | void f(X u) { cout << u.x; } 24 | }; 25 | 26 | int main() 27 | { 28 | X a; 29 | Z b; 30 | b.f(a); 31 | } -------------------------------------------------------------------------------- /surse/prob1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls1 4 | { 5 | protected: 6 | int x; 7 | 8 | public: 9 | cls1() { x = 13; } 10 | }; 11 | class cls2 : public cls1 12 | { 13 | int y; 14 | 15 | public: 16 | cls2() { y = 15; } 17 | int f(cls2 ob) { return (ob.x + ob.y); } 18 | }; 19 | int main() 20 | { 21 | cls2 ob; 22 | cout << ob.f(ob); 23 | return 0; 24 | } -------------------------------------------------------------------------------- /surse/prob2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A { 5 | static int x; 6 | 7 | public: 8 | A(int i = 0) { x = i; } 9 | int get_x() { return x; } 10 | int& set_x(int i) { x = i; } 11 | A operator=(A a1) 12 | { 13 | set_x(a1.get_x()); 14 | return a1; 15 | } 16 | }; 17 | int main() 18 | { 19 | A a(212), b; 20 | cout << (b = a).get_x(); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /surse/prob37.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { 6 | int i; 7 | protected: static int x; 8 | public: A(int j=7) {i=j;x=j;} 9 | int get_x() {return x;} 10 | int set_x(int j) {int y=x; x=j; return y;} 11 | A operator=(A a1) {set_x(a1.get_x()); return a1;} 12 | }; 13 | int A::x=15; 14 | int main() 15 | { 16 | A a(212),b; 17 | cout<<(b=a).get_x(); 18 | return 0; 19 | } -------------------------------------------------------------------------------- /surse/err2.txt: -------------------------------------------------------------------------------- 1 | /tmp/ccvEm3Uj.o: In function `A::A(int)': 2 | prob2.cpp:(.text._ZN1AC2Ei[_ZN1AC5Ei]+0x10): undefined reference to `A::x' 3 | /tmp/ccvEm3Uj.o: In function `A::get_x()': 4 | prob2.cpp:(.text._ZN1A5get_xEv[_ZN1A5get_xEv]+0xa): undefined reference to `A::x' 5 | /tmp/ccvEm3Uj.o: In function `A::set_x(int)': 6 | prob2.cpp:(.text._ZN1A5set_xEi[_ZN1A5set_xEi]+0x10): undefined reference to `A::x' 7 | collect2: error: ld returned 1 exit status -------------------------------------------------------------------------------- /surse/prob3.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { int i; 6 | public: A(int x=2):i(x+1) {} 7 | virtual int get_i() { return i; }}; 8 | class B: public A 9 | { int j; 10 | public: B(int x=20):j(x-2) {} 11 | virtual int get_j() {return A::get_i()+j; }}; 12 | int main() 13 | { A o1(5); 14 | B o2; 15 | cout< 2 | using namespace std; 3 | class A 4 | { 5 | protected: 6 | static int x; 7 | 8 | private: 9 | int y; 10 | 11 | public: 12 | A(int i) 13 | { 14 | x = i; 15 | y = -i + 4; 16 | } 17 | int put_x(A a) { return a.x + a.y; } 18 | }; 19 | int A::x = 7; 20 | int main() 21 | { 22 | A a(10); 23 | cout << a.put_x(20); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob42.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { 6 | int i; 7 | public: A() {i=1;} 8 | virtual int get_i() {return i;} 9 | }; 10 | class B: public A 11 | { 12 | int j; 13 | public: B() {j=2;} 14 | int get_i() { return A::get_i()+j;} 15 | }; 16 | int main() 17 | { 18 | const int i=cin.get(); 19 | if(i%3) {A o;} 20 | else {B o;} 21 | cout< 2 | using namespace std; 3 | #include 4 | 5 | 6 | class B 7 | { int i; 8 | public: B() { i=1; } 9 | int get_i() { return i; } 10 | }; 11 | class D: public B 12 | { int j; 13 | public: D() { j=2; } 14 | int get_j() {return j; } 15 | }; 16 | int main() 17 | { B *p=new D; 18 | cout<get_i(); 19 | if (typeid((B*)p).name()=="B") cout<<((D*)p)->get_j(); 20 | return 0; 21 | } -------------------------------------------------------------------------------- /fly.toml: -------------------------------------------------------------------------------- 1 | # fly.toml app configuration file generated for oopquiz on 2023-10-31T19:49:09+01:00 2 | # 3 | # See https://fly.io/docs/reference/configuration/ for information about how to use this file. 4 | # 5 | 6 | app = "oopquiz" 7 | primary_region = "ams" 8 | 9 | [build] 10 | 11 | [http_service] 12 | internal_port = 8080 13 | force_https = true 14 | auto_stop_machines = true 15 | auto_start_machines = true 16 | min_machines_running = 0 17 | -------------------------------------------------------------------------------- /surse/prob80.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int x; 5 | 6 | public: 7 | B(int i = 10) { x = i; } 8 | int get_x() { return x; } 9 | }; 10 | class D : public B { 11 | public: 12 | D(int i) 13 | : B(i) 14 | { 15 | } 16 | D operator+(const D& a) { return x + a.x; } 17 | }; 18 | int main() 19 | { 20 | D ob1(7), ob2(-12); 21 | cout << (ob1 + ob2).get_x(); 22 | return 0; 23 | } -------------------------------------------------------------------------------- /surse/prob111.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class B { 6 | public: 7 | int x; 8 | B(int i = 16) { x = i; } 9 | B f(B ob) { return x + ob.x; } 10 | }; 11 | class D : public B { 12 | public: 13 | D(int i = 25) { x = i; } 14 | D f(D ob) { return x + ob.x + 1; } 15 | void afisare() { cout << x; } 16 | }; 17 | int main() 18 | { 19 | D *p1 = new D, *p2 = new B, *p3 = new D(p1->f(*p2)); 20 | cout << p3->x; 21 | return 0; 22 | } -------------------------------------------------------------------------------- /surse/prob44.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include 4 | 5 | class B 6 | { 7 | int i; 8 | public: 9 | B() { i=1;} 10 | int get_i() {return i;} 11 | }; 12 | class D: public B 13 | { 14 | int j; 15 | public: 16 | D() {j=2;} 17 | int get_j(){return j;} 18 | }; 19 | int main() 20 | { 21 | B *p=new D; 22 | cout<get_i(); 23 | if(typeid((B*)p).name()=="D*") cout<<((D*)p)->get_j(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob96.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class A 6 | { 7 | protected: int x; 8 | public: A(int i = -16) { x = i; } 9 | virtual A f(A a) { return x + a.x; } 10 | void afisare() { cout << x; } 11 | }; 12 | class B: public A 13 | { 14 | public: B(int i=3):A(i){} 15 | A f(A a) { return x + a.x + 1; } 16 | }; 17 | int main() 18 | { 19 | A *p1 = new B, *p2 = new A, *p3 = new A(p1->f(*p2)); 20 | p3->afisare(); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /surse/prob55.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B 4 | { 5 | int i; 6 | 7 | public: 8 | B() { i = 50; } 9 | virtual int get_i() { return i; } 10 | }; 11 | class D : public B 12 | { 13 | int j; 14 | 15 | public: 16 | D() { j = 47; } 17 | int get_j() { return j; } 18 | }; 19 | int main() 20 | { 21 | D *p = new B; 22 | cout << p->get_i(); 23 | cout << ((D *)p)->get_j(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob73.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class B { 6 | public: 7 | int x; 8 | B(int i = 16) { x = i; } 9 | B(){} 10 | B f(B ob) { return x + ob.x; } 11 | }; 12 | class D : public B { 13 | public: 14 | D(int i = 25) { x = i; } 15 | B f(B ob) { return x + ob.x + 1; } 16 | void afisare() { cout << x; } 17 | }; 18 | int main() 19 | { 20 | B *p1 = new D, *p2 = new B, *p3 = new B(p1->f(*p2)); 21 | cout << p3->x; 22 | return 0; 23 | } -------------------------------------------------------------------------------- /surse/prob81.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | public: 5 | int x; 6 | B(int i = 16) { x = i; } 7 | B f(B ob) { return x + ob.x; } 8 | }; 9 | class D : public B { 10 | public: 11 | D(int i = 25) { x = i; } 12 | B f(B ob) { return x + ob.x + 1; } 13 | void afisare() { cout << x; } 14 | }; 15 | int main() 16 | { 17 | B *p1 = new D, *p2 = new B, *p3 = new B(p1->f(*p2)); 18 | cout << p3->x; 19 | return 0; 20 | } -------------------------------------------------------------------------------- /surse/prob11.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class A { 4 | int x; 5 | 6 | public: 7 | A(int i = 0) { x = i; } 8 | A operator+(const A& a) { return x + a.x; } 9 | template 10 | ostream& operator<<(ostream&); 11 | }; 12 | template 13 | ostream& A::operator<<(ostream& o) 14 | { 15 | o << x; 16 | return o; 17 | } 18 | int main() 19 | { 20 | A a1(33), a2(-21); 21 | cout << a1 + a2; 22 | return 0; 23 | } -------------------------------------------------------------------------------- /surse/prob35.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class A { 4 | int x; 5 | 6 | public: 7 | A(int i = 0) { x = i; } 8 | A operator+(const A& a) { return x + a.x; } 9 | template 10 | ostream& operator<<(ostream&); 11 | }; 12 | template 13 | ostream& A::operator<<(ostream& o) 14 | { 15 | o << x; 16 | return o; 17 | } 18 | int main() 19 | { 20 | A a1(33), a2(-21); 21 | cout << a1 + a2; 22 | return 0; 23 | } -------------------------------------------------------------------------------- /surse/prob56.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls1 { 5 | int x; 6 | public: 7 | cls1 () { 8 | x = 13; 9 | } 10 | int g() { 11 | static int i; i++; 12 | return (i+x); 13 | } 14 | }; 15 | 16 | class cls2 { 17 | int x; 18 | public: 19 | cls2() { 20 | x = 27; 21 | } 22 | cls1& f() { 23 | cls1 ob; return ob; 24 | } 25 | }; 26 | 27 | int main() { 28 | cls2 ob; 29 | cout << ob.f().g(); 30 | return 0; 31 | } -------------------------------------------------------------------------------- /surse/prob47.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls1 { 5 | int x; 6 | public: 7 | cls1 () { 8 | x = 13; 9 | } 10 | int g() { 11 | static int i; i++; 12 | return (i+x); 13 | } 14 | }; 15 | 16 | class cls2 { 17 | int x; 18 | public: 19 | cls2() { 20 | x = 27; 21 | } 22 | cls1& f() { 23 | cls1 ob; return ob; 24 | } 25 | }; 26 | 27 | int main() { 28 | cls2 ob; 29 | cout << ob.f().g(); 30 | return 0; 31 | } 32 | -------------------------------------------------------------------------------- /surse/prob65.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class vector { 5 | int *p, nr; 6 | 7 | public: 8 | operator int() { return nr; } 9 | vector(int); 10 | }; 11 | 12 | vector::vector(int n) 13 | { 14 | p = new int[n]; 15 | nr = n; 16 | while (n--) 17 | p[n] = n; 18 | } 19 | 20 | void f(int i) 21 | { 22 | while (i--) 23 | cout << i << endl; 24 | } 25 | 26 | int main() 27 | { 28 | vector x(10); 29 | f(x); 30 | } -------------------------------------------------------------------------------- /surse/prob114.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | struct X 4 | { 5 | int i; 6 | 7 | public: 8 | X(int ii) { i = ii; }; 9 | int f1() const { return i; } 10 | X f2() const 11 | { 12 | int i = this->f1(); 13 | return X(74 - i); 14 | } 15 | }; 16 | const X f3() { return X(8); } 17 | int f4(const X &x) { return x.f1(); } 18 | int main() 19 | { 20 | X ob(19); 21 | cout << f4(ob.f2()); 22 | return 0; 23 | } -------------------------------------------------------------------------------- /surse/prob97.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class A 6 | { 7 | protected: int x; 8 | public: A(int i = -16) { x = i; } 9 | virtual A f(A a) { return x + a.x; } 10 | void afisare() { cout << x; } 11 | }; 12 | class B: public A 13 | { 14 | public: B(int i=3):A(i){} 15 | A f(A a) { return x + 1; } 16 | B operator+ (B a) { return x + a.x; } 17 | }; 18 | int main() 19 | { 20 | B a; int b = -21; 21 | a += b; 22 | cout << b; 23 | return 0; 24 | 25 | } -------------------------------------------------------------------------------- /surse/prob17.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A { 5 | protected: 6 | static int x; 7 | 8 | public: 9 | A(int i = 0) { x = i; } 10 | virtual A schimb() { return (7 - x); } 11 | }; 12 | class B : public A { 13 | public: 14 | B(int i = 0) { x = i; } 15 | void afisare() { cout << x; } 16 | }; 17 | int A::x = 5; 18 | int main() 19 | { 20 | A* p1 = new B(18); 21 | *p1 = p1->schimb(); 22 | ((B*)p1)->afisare(); 23 | return 0; 24 | } -------------------------------------------------------------------------------- /surse/prob4.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class problema { 4 | int i; 5 | 6 | public: 7 | problema(int j = 5) { i = j; } 8 | void schimba() { i++; } 9 | void afiseaza() { cout << "starea curenta " << i << "\n"; } 10 | }; 11 | problema mister1() { return problema(6); } 12 | void mister2(problema& o) 13 | { 14 | o.afiseaza(); 15 | o.schimba(); 16 | o.afiseaza(); 17 | } 18 | int main() 19 | { 20 | mister2(mister1()); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /surse/prob7.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include 4 | class B { 5 | int i; 6 | 7 | public: 8 | B() { i = 1; } 9 | int get_i() { return i; } 10 | }; 11 | class D : B { 12 | int j; 13 | 14 | public: 15 | D() { j = 2; } 16 | int get_j() { return j; } 17 | }; 18 | int main() 19 | { 20 | B* p = new D; 21 | cout << p->get_i(); 22 | if (typeid((B*)p).name() == "D*") 23 | cout << ((D*)p)->get_j(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob15.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | struct cls { 5 | int x; 6 | 7 | public: 8 | int set_x(int i) 9 | { 10 | int y = x; 11 | x = i; 12 | return x; 13 | } 14 | int get_x() { return x; } 15 | }; 16 | int main() 17 | { 18 | cls* p = new cls[100]; 19 | int i = 0; 20 | for (; i < 50; i++) 21 | p[i].set_x(i); 22 | for (i = 5; i < 20; i++) 23 | cout << p[i].get_x() << " "; 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob28.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class problema { 4 | int i; 5 | 6 | public: 7 | problema(int j = 5) { i = j; } 8 | void schimba() { i++; } 9 | void afiseaza() { cout << "starea curenta " << i << "\n"; } 10 | }; 11 | problema mister1() { return problema(6); } 12 | void mister2(problema& o) 13 | { 14 | o.afiseaza(); 15 | o.schimba(); 16 | o.afiseaza(); 17 | } 18 | int main() 19 | { 20 | mister2(mister1()); //(1) 21 | return 0; 22 | } -------------------------------------------------------------------------------- /surse/prob57.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class D; 5 | 6 | class B { 7 | int x; 8 | friend void f(B, D); 9 | 10 | public: 11 | B(int i = 0) { x = i; } 12 | }; 13 | 14 | class D : public B { 15 | public: 16 | int y; 17 | D(int i = 0, int j = 0) 18 | : B(i) 19 | { 20 | y = j; 21 | } 22 | }; 23 | 24 | void f(B b, D d) { cout << b.x << " " << d.y; } 25 | 26 | int main() 27 | { 28 | B b; 29 | D d; 30 | f(b, d); 31 | } -------------------------------------------------------------------------------- /surse/prob58.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class D; 5 | 6 | class B { 7 | int x; 8 | friend void f(B, D); 9 | 10 | public: 11 | B(int i = 0) { x = i; } 12 | }; 13 | 14 | class D : public B { 15 | public: 16 | int y; 17 | D(int i = 0, int j = 0) 18 | : B(i) 19 | { 20 | y = j; 21 | } 22 | }; 23 | 24 | void f(B b, D d) { cout << b.x << " " << d.y; } 25 | 26 | int main() 27 | { 28 | B b; 29 | D d; 30 | f(b, d); 31 | } -------------------------------------------------------------------------------- /surse/prob30.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int x; 5 | 6 | public: 7 | B(int i = 7) { x = i; } 8 | int get_x() { return x; } 9 | operator int() { return x; } 10 | }; 11 | class D : public B { 12 | public: 13 | D(int i = -12) 14 | : B(i) 15 | { 16 | } 17 | D operator+(D a) { return get_x() + a.get_x() + 1; } 18 | }; 19 | int main() 20 | { 21 | D a; 22 | int b = 18; 23 | b += a; 24 | cout << b; 25 | return 0; 26 | } -------------------------------------------------------------------------------- /surse/prob31.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include 4 | class B { 5 | int i; 6 | 7 | public: 8 | B() { i = 1; } 9 | int get_i() { return i; } 10 | }; 11 | class D : B { 12 | int j; 13 | 14 | public: 15 | D() { j = 2; } 16 | int get_j() { return j; } 17 | }; 18 | int main() 19 | { 20 | B* p = new D; //(1) 21 | cout << p->get_i(); //(2) 22 | if (typeid((B*)p).name() == "D*") 23 | cout << ((D*)p)->get_j(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob6.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int x; 5 | 6 | public: 7 | B(int i = 7) { x = i; } 8 | int get_x() { return x; } 9 | operator int() { return x; } 10 | }; 11 | class D : public B { 12 | public: 13 | D(int i = -12) 14 | : B(i) 15 | { 16 | } 17 | D operator+(D a) { return get_x() + a.get_x() + 1; } 18 | }; 19 | int main() 20 | { 21 | D a; 22 | int b = 18; 23 | b += a; 24 | cout << b; 25 | return 0; 26 | } -------------------------------------------------------------------------------- /surse/prob12.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | int x; 5 | 6 | public: 7 | cls(int i) { x = i; } 8 | int set_x(int i) 9 | { 10 | int y = x; 11 | x = i; 12 | return y; 13 | } 14 | int get_x() { return x; } 15 | }; 16 | int main() 17 | { 18 | cls* p = new cls[10]; 19 | int i = 0; 20 | for (; i < 10; i++) 21 | p[i].set_x(i); 22 | for (i = 0; i < 10; i++) 23 | cout << p[i].get_x(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob89.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | int x; 5 | 6 | public: 7 | cls(int i) { x = i; } 8 | int set_x(int i) 9 | { 10 | int y = x; 11 | x = i; 12 | return y; 13 | } 14 | int get_x() { return x; } 15 | }; 16 | int main() 17 | { 18 | cls* p = new cls[10]; 19 | int i = 0; 20 | for (; i < 10; i++) 21 | p[i].set_x(i); 22 | for (i = 0; i < 10; i++) 23 | cout << p[i].get_x(i); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob36.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | int x; 5 | 6 | public: 7 | cls(int i) { x = i; } 8 | int set_x(int i) 9 | { 10 | int y = x; 11 | x = i; 12 | return y; 13 | } 14 | int get_x() { return x; } 15 | }; 16 | int main() 17 | { 18 | cls* p = new cls[10]; //(1) 19 | int i = 0; 20 | for (; i < 10; i++) 21 | p[i].set_x(i); 22 | for (i = 0; i < 10; i++) 23 | cout << p[i].get_x(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob82.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | int *v, nr; 5 | 6 | public: 7 | cls(int i) 8 | { 9 | nr = i; 10 | v = new int[i]; 11 | for (int j = 1; j < nr; j++) 12 | v[j] = 0; 13 | } 14 | int size() { return nr; } 15 | int& operator[](int i) { return *(v + i); } 16 | }; 17 | int main() 18 | { 19 | cls x(10); 20 | x[4] = -15; 21 | for (int i = 0; i < x.size(); i++) 22 | cout << x[i]; 23 | return 0; 24 | } -------------------------------------------------------------------------------- /surse/prob27.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int i; 5 | 6 | public: 7 | B() { i = 1; } 8 | virtual int get_i() { return i; } 9 | }; 10 | class D : public B { 11 | int j; 12 | 13 | public: 14 | D() { j = 2; } 15 | int get_i() { return B::get_i() + j; } 16 | }; 17 | int main() 18 | { 19 | const int i = cin.get(); 20 | if (i % 3) { 21 | D o; 22 | } 23 | else { 24 | B o; 25 | } 26 | cout << o.get_i(); //(1) 27 | return 0; 28 | } -------------------------------------------------------------------------------- /surse/prob71.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls1 { 4 | int x; 5 | 6 | public: 7 | cls1() { x = 13; } 8 | int g() 9 | { 10 | static int i; 11 | i++; 12 | return (i + x); 13 | } 14 | }; 15 | class cls2 { 16 | int x; 17 | 18 | public: 19 | cls2() { x = 27; } 20 | cls1& f() 21 | { 22 | static cls1 ob; 23 | return ob; 24 | } 25 | }; 26 | int main() 27 | { 28 | cls2 ob; 29 | cout << ob.f().g(); 30 | return 0; 31 | } -------------------------------------------------------------------------------- /surse/err110.txt: -------------------------------------------------------------------------------- 1 | /tmp/ccZ6llgZ.o: In function `A::A(int)': 2 | prob110.cpp:(.text._ZN1AC2Ei[_ZN1AC5Ei]+0x10): undefined reference to `A::x' 3 | /tmp/ccZ6llgZ.o: In function `A::get_x()': 4 | prob110.cpp:(.text._ZN1A5get_xEv[_ZN1A5get_xEv]+0xa): undefined reference to `A::x' 5 | /tmp/ccZ6llgZ.o: In function `A::set_x(int)': 6 | prob110.cpp:(.text._ZN1A5set_xEi[_ZN1A5set_xEi]+0x20): undefined reference to `A::x' 7 | prob110.cpp:(.text._ZN1A5set_xEi[_ZN1A5set_xEi]+0x2c): undefined reference to `A::x' 8 | collect2: error: ld returned 1 exit status -------------------------------------------------------------------------------- /surse/prob88.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int i; 5 | 6 | public: 7 | B() { i = 1; } 8 | int get_i() { return i; } 9 | }; 10 | class D : public B { 11 | int j; 12 | 13 | public: 14 | D() { j = 2; } 15 | int get_j() { return j; } 16 | }; 17 | int main() 18 | { 19 | B* p; 20 | int x = 0; 21 | if (x) 22 | p = new B; 23 | else 24 | p = new D; 25 | if (typeid(p).name() == "D*") 26 | cout << ((D*)p)->get_j(); 27 | return 0; 28 | } -------------------------------------------------------------------------------- /surse/prob93.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include 4 | 5 | 6 | class A 7 | { 8 | int i; 9 | public: A() { i = 1; } 10 | int get_i() { return i; } 11 | }; 12 | class B: public A 13 | { 14 | int j; 15 | public: B() { j = 2; } 16 | int get_j() { return j; } 17 | }; 18 | int main() 19 | { 20 | A *p; 21 | int x = 0; 22 | if (x) p = new A; 23 | else p = new B; 24 | if (typeid(p).name() == typeid(B*).name()) cout << ((B*)p)->get_j(); 25 | else cout << "tipuri diferite"; 26 | return 0; 27 | } -------------------------------------------------------------------------------- /surse/prob113.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls 4 | { 5 | int x; 6 | 7 | public: 8 | cls(int i) { x = i; } 9 | int set_x(int i) 10 | { 11 | int y = x; 12 | x = i; 13 | return y; 14 | } 15 | int get_x() { return x; } 16 | }; 17 | int main() 18 | { 19 | cls *p = new cls[10]; 20 | for (int i = 3; i < 9; i++) 21 | p[i].set_x(i); 22 | for (int i = 0; i < 4; i++) 23 | cout << p[i].get_x(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob32.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | protected: 5 | int x; 6 | 7 | public: 8 | B(int i = 28) { x = i; } 9 | virtual B f(B ob) { return x + ob.x + 1; } 10 | void afisare() { cout << x; } 11 | }; 12 | class D : public B { 13 | public: 14 | D(int i = -32) 15 | : B(i) 16 | { 17 | } 18 | B f(B ob) { return x + ob.x - 1; } 19 | }; 20 | int main() 21 | { 22 | B *p1 = new D, *p2 = new B, *p3 = new B(p1->f(*p2)); 23 | p3->afisare(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob8.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | protected: 5 | int x; 6 | 7 | public: 8 | B(int i = 28) { x = i; } 9 | virtual B f(B ob) { return x + ob.x + 1; } 10 | void afisare() { cout << x; } 11 | }; 12 | class D : public B { 13 | public: 14 | D(int i = -32) 15 | : B(i) 16 | { 17 | } 18 | B f(B ob) { return x + ob.x - 1; } 19 | }; 20 | int main() 21 | { 22 | B *p1 = new D, *p2 = new B, *p3 = new B(p1->f(*p2)); 23 | p3->afisare(); 24 | return 0; 25 | } -------------------------------------------------------------------------------- /surse/prob69.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class A 4 | { 5 | int i; 6 | 7 | public: 8 | A(int x = 3) : i(x) {} 9 | virtual int get_i() { return i; } 10 | }; 11 | class B : public A 12 | { 13 | int j; 14 | 15 | public: 16 | B(int x = 10) : j(x) {} 17 | virtual int get_j() { return A::get_i() + j; } 18 | }; 19 | int main() 20 | { 21 | A o1(5); 22 | B o2; 23 | cout << o1.get_i(); 24 | cout << o2.get_j(); 25 | cout << o2.get_i(); 26 | return 0; 27 | } -------------------------------------------------------------------------------- /surse/prob95.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B 4 | { 5 | protected: 6 | int x; 7 | 8 | public: 9 | B(int i = 3) { x = i; } 10 | virtual B f(B ob) { return x + ob.x; } 11 | void afisare() { cout << x; } 12 | }; 13 | class D : public B 14 | { 15 | public: 16 | D(int j = 4) : B(j + 2) { int i = j; } 17 | D f(D ob) { return x + 1; } 18 | }; 19 | int main() 20 | { 21 | B *p1 = new D, *p2 = new B, *p3 = new B(p1->f(*p2)); 22 | p3->afisare(); 23 | return 0; 24 | } -------------------------------------------------------------------------------- /surse/prob117.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class X 4 | { 5 | int i; 6 | 7 | public: 8 | X(int ii = 5) 9 | { 10 | i = ii; 11 | cout << i << " "; 12 | }; 13 | const int tipareste(int j) 14 | { 15 | cout << i << " "; 16 | return i + j; 17 | }; 18 | }; 19 | int main() 20 | { 21 | X O(7); 22 | O.tipareste(5); 23 | X &O2 = O; 24 | O2.tipareste(6); 25 | const X *p = &O; 26 | cout << p->tipareste(7); 27 | return 0; 28 | } -------------------------------------------------------------------------------- /surse/prob54.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | 5 | class A 6 | { 7 | int n; 8 | 9 | public: 10 | A(int x) { n = x; } 11 | void afis() { cout << n; } 12 | }; 13 | 14 | class B : public A 15 | { 16 | public: 17 | B(int x) : A(x) {} 18 | }; 19 | int main() 20 | { 21 | int x; 22 | cin >> x; 23 | if (x > 0) 24 | { 25 | A ob(2); 26 | } 27 | else 28 | { 29 | B ob(2); 30 | } 31 | ob.afis(); 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /surse/prob19.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class B { 5 | protected: 6 | int x; 7 | 8 | public: 9 | B(int i = 12) { x = i; } 10 | virtual B f(B ob) { return x + ob.x + 1; } 11 | void afisare() { cout << x; } 12 | }; 13 | class D : public B { 14 | public: 15 | D(int i = -15) 16 | : B(i - 1) 17 | { 18 | x++; 19 | } 20 | B f(B ob) { return x - 2; } 21 | }; 22 | int main() 23 | { 24 | B *p1 = new D, *p2 = new B, *p3 = new B(p1->f(*p2)); 25 | p3->afisare(); 26 | return 0; 27 | } -------------------------------------------------------------------------------- /surse/prob43.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls 5 | { 6 | int x; 7 | public: 8 | cls(int i=0) {cout<<"c1 "; x=i;} 9 | ~cls() {cout<<"d1 ";} 10 | }; 11 | class cls1 12 | { 13 | int x; cls xx; 14 | public: 15 | cls1(int i=0){cout<<"c2 ";x=i;} 16 | ~cls1(){cout<<"d2 ";} 17 | }c; 18 | class cls2 19 | { 20 | int x;cls1 xx;cls xxx; 21 | public: 22 | cls2(int i=0) {cout<<"c3 ";x=i;} 23 | ~cls2(){ cout<<"d3 ";} 24 | }; 25 | int main() 26 | { 27 | cls2 s; 28 | return 0; 29 | } 30 | -------------------------------------------------------------------------------- /surse/prob61.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls { 5 | int vi; 6 | 7 | public: 8 | cls(int v = 18) { vi = v; } 9 | operator int() { return vi; } 10 | cls operator++() 11 | { 12 | vi++; 13 | return *this; 14 | } 15 | cls operator++(int); 16 | }; 17 | 18 | cls cls::operator++(int) 19 | { 20 | cls aux = *this; 21 | vi++; 22 | return aux; 23 | } 24 | 25 | int main() 26 | { 27 | cls p(20); 28 | int x = p++, y = ++p; 29 | cout << "x=" << x << ", y=" << y << endl; 30 | } -------------------------------------------------------------------------------- /surse/prob62.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls { 5 | int vi; 6 | 7 | public: 8 | cls(int v = 18) { vi = v; } 9 | operator int() { return vi; } 10 | cls operator++() 11 | { 12 | vi++; 13 | return *this; 14 | } 15 | cls operator++(int); 16 | }; 17 | 18 | cls cls::operator++(int) 19 | { 20 | cls aux = *this; 21 | vi++; 22 | return aux; 23 | } 24 | 25 | int main() 26 | { 27 | cls p(20); 28 | int x = p++, y = ++p; 29 | cout << "x=" << x << ", y=" << y << endl; 30 | } -------------------------------------------------------------------------------- /surse/prob68.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class cls2; 5 | 6 | class cls1 { 7 | public: 8 | int vi; 9 | cls1(int v = 30) { vi = v; } 10 | cls1(cls2 p) { vi = p.vi; } 11 | }; 12 | 13 | class cls2 { 14 | public: 15 | int vi; 16 | cls2(int v = 20) { vi = v; } 17 | }; 18 | 19 | cls1 f(cls1 p) 20 | { 21 | p.vi++; 22 | return p; 23 | } 24 | 25 | int main() 26 | { 27 | cls1 p; 28 | f(p); 29 | cout << endl 30 | << p.vi; 31 | cls2 r; 32 | f(r); 33 | cout << endl 34 | << r.vi; 35 | } -------------------------------------------------------------------------------- /surse/prob22.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | #include 4 | 5 | class B { 6 | int i; 7 | 8 | public: 9 | B(int x) { i = x + 1; } 10 | int get_i() { return i; } 11 | }; 12 | class D : public B { 13 | int j; 14 | 15 | public: 16 | D() 17 | : B(1) 18 | { 19 | j = i + 2; 20 | } 21 | int get_j() { return j; } 22 | }; 23 | int main() 24 | { 25 | B* p = new D[10]; 26 | cout << p->get_i(); 27 | if (typeid((B*)p).name() == "D*") 28 | cout << ((D*)p)->get_j(); 29 | return 0; 30 | } -------------------------------------------------------------------------------- /surse/prob119.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class A 4 | { protected: int x; 5 | public: A(int i):x(i){} 6 | int get_x(){ return x; } }; 7 | class B: A 8 | { protected: int y; 9 | public: B(int i,int j):y(i),A(j){} 10 | int get_y(){ return get_x()+y; } }; 11 | class C: protected B 12 | { protected: int z; 13 | public: C(int i,int j,int k):z(i),B(j,k){} 14 | int get_z(){ return get_x()+get_y()+z; } }; 15 | int main() 16 | { C c(5,6,7); 17 | cout< 2 | using namespace std; 3 | class cls1 { 4 | public: 5 | int x; 6 | cls1(int i = 20) { x = i; } 7 | }; 8 | class cls2 { 9 | public: 10 | int y; 11 | cls2(int i = 30) { y = i; } 12 | operator cls1() 13 | { 14 | cls1 ob; 15 | ob.x = y; 16 | return ob; 17 | } 18 | }; 19 | cls1 f(cls1 ob) 20 | { 21 | ob.x++; 22 | return ob; 23 | } 24 | int main() 25 | { 26 | cls1 ob1; 27 | f(ob1); 28 | cout << ob1.x; 29 | cls2 ob2; 30 | f(ob2); 31 | cout << ob2.y; 32 | return 0; 33 | } -------------------------------------------------------------------------------- /surse/prob41.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int f(int y) 5 | { 6 | if (y < 0) 7 | throw y; 8 | return y / 2; 9 | } 10 | int main() 11 | { 12 | int x; 13 | try 14 | { 15 | cout << "Da-mi un numar par: "; 16 | cin >> x; //se va citi numarul 2 17 | if (x % 3) 18 | x = f(x); 19 | else 20 | throw x; 21 | cout << "Numarul " << x << " e bun!\n"; 22 | } 23 | catch (int i) 24 | { 25 | cout << "Numarul " << i << " nu e bun!\n"; 26 | } 27 | return 0; 28 | } -------------------------------------------------------------------------------- /surse/prob52.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B 4 | { protected: static int x; 5 | int i; 6 | public: B() { x++; i=1; } 7 | ~B() { x--; cout << "b";} 8 | int get_x() { return x; } 9 | int get_i() { return i; } }; 10 | int B::x; 11 | class D: public B 12 | { public: D() { x++; } 13 | ~D() { x--; cout << "d";} }; 14 | int f(B *q) 15 | { return (q->get_x())+1; } 16 | int main() 17 | { B *p=new B[10]; 18 | cout< 2 | using namespace std; 3 | 4 | class A { 5 | int x; 6 | 7 | public: 8 | A(int i) { x = i; } 9 | int get_x() { return x; } 10 | int& set_x(int i) { x = i; } 11 | A operator=(A a1) 12 | { 13 | set_x(a1.get_x()); 14 | return a1; 15 | } 16 | }; 17 | class B : public A { 18 | int y; 19 | 20 | public: 21 | B(int i) 22 | : A(i) 23 | { 24 | y = i; 25 | } 26 | void afisare() { cout << y; } 27 | }; 28 | int main() 29 | { 30 | B a(112), b, *c; 31 | cout << (b = a).get_x(); 32 | (c = &a)->afisare(); 33 | return 0; 34 | } -------------------------------------------------------------------------------- /surse/prob107.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A 5 | { 6 | protected: 7 | int x; 8 | 9 | public: 10 | A(int i) : x(i) {} 11 | int get_x() { return x; } 12 | }; 13 | class B : A 14 | { 15 | protected: 16 | int y; 17 | 18 | public: 19 | B(int i, int j) : y(i), A(j) {} 20 | int get_y() { return get_x() + y; } 21 | }; 22 | class C : protected B 23 | { 24 | protected: 25 | int z; 26 | 27 | public: 28 | C(int i, int j, int k) : z(i), B(j, k) {} 29 | int get_z() { return get_x() + get_y() + z; } 30 | }; 31 | int main() 32 | { 33 | C c(5, 6, 7); 34 | cout << c.get_z(); 35 | return 0; 36 | } -------------------------------------------------------------------------------- /surse/prob84.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | static int x; 5 | int i; 6 | 7 | public: 8 | B() 9 | { 10 | x++; 11 | i = 1; 12 | } 13 | ~B() { x--; } 14 | static int get_x() { return x; } 15 | int get_i() { return i; } 16 | }; 17 | int B::x; 18 | class D : public B { 19 | public: 20 | D() { x++; } 21 | ~D() { x--; } 22 | }; 23 | int f(B* q) 24 | { 25 | return (q->get_i()) + 1; 26 | } 27 | int main() 28 | { 29 | B* p = new B; 30 | cout << f(p); 31 | delete p; 32 | p = new D; 33 | cout << f(p); 34 | delete p; 35 | cout << D::get_x(); 36 | return 0; 37 | } -------------------------------------------------------------------------------- /surse/prob104.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class B 5 | { protected: int i; 6 | public: B(int j=5) {cout << " cb "; i=j-2; } 7 | ~B(){ cout << " db ";} 8 | int get_i() { return i; } }; 9 | 10 | class D1: public B 11 | { int j; 12 | public: D1(int k=10) {cout << " cd1 "; j=i-k+3; } 13 | ~D1(){ cout << " dd1 ";} }; 14 | 15 | class D2: public D1 16 | { int k; 17 | public: D2(int l=15) {cout << " cd2 "; k=i-l+3; } 18 | ~D2(){ cout << " dd2 ";} }; 19 | D1 f(D1 d1, D2 d2) {return d1.get_i()+d2.get_i(); } 20 | int main() 21 | { D2 ob2; D1 ob1(3); 22 | cout< 2 | using namespace std; 3 | class A 4 | { 5 | protected: 6 | int x; 7 | 8 | public: 9 | A(int i) : x(i) {} 10 | int get_x() { return x; } 11 | }; 12 | class B : private A 13 | { 14 | protected: 15 | int y; 16 | 17 | public: 18 | B(int i, int j) : y(i), A(j) {} 19 | int get_y() { return get_x() + y; } 20 | }; 21 | class C : private B 22 | { 23 | protected: 24 | int z; 25 | 26 | public: 27 | C(int i, int j, int k) : z(i), B(j, k) {} 28 | int get_z() { return get_x() + get_y() + z; } 29 | }; 30 | int main() 31 | { 32 | C c(1, 2, 3); 33 | cout << c.get_z(); 34 | return 0; 35 | } -------------------------------------------------------------------------------- /surse/prob101.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class A { 6 | int x; 7 | 8 | public: 9 | A(int i = 2) 10 | : x(i) 11 | { 12 | } 13 | int get_x() const { return x; } 14 | }; 15 | class B : public A { 16 | 17 | int* y; 18 | 19 | public: 20 | B(int i = 2) 21 | : A(i) 22 | { 23 | y = new int[i]; 24 | for (int j = 0; j < i; j++) 25 | y[j] = 1; 26 | } 27 | int& operator[](int i) const { return y[i]; } 28 | }; 29 | ostream& operator<<(ostream& o, const B &b) 30 | { 31 | for (int i = 0; i < b.get_x(); i++) 32 | o << b[i]; 33 | return o; 34 | } 35 | int main() 36 | { 37 | const B b(5); 38 | b[2] = 3; b[4] = 5; 39 | cout << b; 40 | return 0; 41 | } -------------------------------------------------------------------------------- /surse/prob33.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | protected: 5 | static int x; 6 | int i; 7 | 8 | public: 9 | B() 10 | { 11 | x++; 12 | i = 1; 13 | } 14 | ~B() { x--; } 15 | static int get_x() { return x; } 16 | int get_i() { return i; } 17 | }; 18 | int B::x; 19 | class D : public B { 20 | public: 21 | D() { x++; } 22 | ~D() { x--; } 23 | }; 24 | int f(B* q) 25 | { 26 | return (q->get_x()) + 1; 27 | } 28 | int main() 29 | { 30 | B* p = new B[10]; 31 | cout << f(p); 32 | delete[] p; 33 | p = new D; 34 | cout << f(p); 35 | delete p; 36 | cout << D::get_x(); 37 | return 0; 38 | } -------------------------------------------------------------------------------- /surse/prob9.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | protected: 5 | static int x; 6 | int i; 7 | 8 | public: 9 | B() 10 | { 11 | x++; 12 | i = 1; 13 | } 14 | ~B() { x--; } 15 | static int get_x() { return x; } 16 | int get_i() { return i; } 17 | }; 18 | int B::x; 19 | class D : public B { 20 | public: 21 | D() { x++; } 22 | ~D() { x--; } 23 | }; 24 | int f(B* q) 25 | { 26 | return (q->get_x()) + 1; 27 | } 28 | int main() 29 | { 30 | B* p = new B[10]; 31 | cout << f(p); 32 | delete[] p; 33 | p = new D; 34 | cout << f(p); 35 | delete p; 36 | cout << D::get_x(); 37 | return 0; 38 | } -------------------------------------------------------------------------------- /surse/prob92.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class A 6 | { 7 | int x; 8 | public: 9 | A(int i):x(i){} 10 | int get_x() const { return x; } 11 | }; 12 | class B : public A 13 | { 14 | int *y; 15 | public: 16 | B(int i) :A(i) 17 | { 18 | y = new int[i]; 19 | for (int j = 0; j < i; j++) y[j] = 1; 20 | } 21 | B(B&); 22 | int &operator[](int i) { return y[i]; } 23 | }; 24 | B::B(B& a) 25 | { 26 | y = new int[a.get_x()]; 27 | for (int i = 0; i < a.get_x(); i++) y[i] = a[i]; 28 | } 29 | ostream &operator<<(ostream& o, B a) 30 | { 31 | for (int i = 0; i < a.get_x(); i++)o << a[i]; 32 | return o; 33 | } 34 | int main() 35 | { 36 | B b(5); 37 | cout << b; 38 | return 0; 39 | } -------------------------------------------------------------------------------- /surse/prob39.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | templatevoid test(X &a, X &b) 5 | { 6 | X temp; 7 | temp=a; 8 | a=b; 9 | b=temp; 10 | cout<<"ttest\n"; 11 | } 12 | void test(int &c,int &d) 13 | { 14 | int temp; 15 | temp=c; 16 | c=d; 17 | d=temp; 18 | cout<<"test 1\n"; 19 | } 20 | void test(int e,int f) 21 | { 22 | int temp; 23 | temp=e; 24 | e=f; 25 | f=temp; 26 | cout<<"test 2\n"; 27 | } 28 | void test(int g,int *h) 29 | { 30 | int temp; 31 | temp=g; 32 | g=*h; 33 | *h=temp; 34 | cout<<"test 3\n"; 35 | } 36 | int main() 37 | { 38 | int a=5,b=15,c=25,*d=&a; 39 | test(a,b); 40 | test(c,d); 41 | return 0; 42 | } -------------------------------------------------------------------------------- /surse/prob21.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class A { 5 | public: 6 | int x; 7 | A(int i = -13) { x = i; } 8 | }; 9 | class B : virtual public A { 10 | public: 11 | B(int i = -15) { x = i; } 12 | }; 13 | class C : virtual public A { 14 | public: 15 | C(int i = -17) { x = i; } 16 | }; 17 | class D : virtual public A { 18 | public: 19 | D(int i = -29) { x = i; } 20 | }; 21 | class E : public B, public D, public C { 22 | public: 23 | int y; 24 | E(int i, int j) 25 | : D(i) 26 | , B(j) 27 | { 28 | y = x + i + j; 29 | } 30 | E(E& ob) { y = ob.x - ob.y; } 31 | }; 32 | int main() 33 | { 34 | E e1(5, 10), e2 = e1; 35 | cout << e2.y; 36 | return 0; 37 | } -------------------------------------------------------------------------------- /surse/prob87.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class cls { 4 | int *v, nr; 5 | 6 | public: 7 | cls(int i = 0) 8 | { 9 | nr = i; 10 | v = new int[i]; 11 | for (int j = 0; j < size(); j++) 12 | v[j] = 3 * j; 13 | } 14 | ~cls() { delete[] v; } 15 | int size() { return nr; } 16 | int& operator[](int i) { return v[i]; } 17 | cls operator+(cls); 18 | }; 19 | cls cls::operator+(cls y) 20 | { 21 | cls x(size()); 22 | for (int i = 0; i < size(); i++) 23 | x[i] = v[i] + y[i]; 24 | return x; 25 | } 26 | int main() 27 | { 28 | cls x(10), y = x, z; 29 | x[3] = y[6] = -15; 30 | z = x + y; 31 | for (int i = 0; i < x.size(); i++) 32 | cout << z[i]; 33 | return 0; 34 | } -------------------------------------------------------------------------------- /surse/prob50.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class B 5 | { int i; 6 | public: B() { i=1; cout<<"B ";} 7 | virtual int get_i() { return i; } }; 8 | class D: virtual public B 9 | { int j; 10 | public: D() { j=2; cout<<"D ";} 11 | int get_i() {return B::get_i()+j; } }; 12 | class D2: virtual public B 13 | { int j2; 14 | public: D2() { j2=3; cout<<"D2 "; } 15 | int get_i() {return B::get_i()+j2; } }; 16 | class MM: public D, public D2 17 | { int x; 18 | public: MM() { x=D::get_i()+D2::get_i();cout<<"MM \n"; } 19 | int get_i() {return x; } }; 20 | int main() 21 | { B *o= new MM(); 22 | cout<get_i()<<"\n"; 23 | MM *p= dynamic_cast(o); 24 | if (p) cout<get_i()<<"\n"; 25 | D *p2= dynamic_cast(o); 26 | if (p2) cout<get_i()<<"\n"; 27 | return 0; 28 | } -------------------------------------------------------------------------------- /surse/prob23.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | class B { 5 | protected: 6 | static int x; 7 | int i; 8 | 9 | public: 10 | B() 11 | { 12 | x++; 13 | i = 1; 14 | } 15 | ~B() { x--; } 16 | static int get_x() { return x; } 17 | int get_i() { return i; } 18 | }; 19 | int B::x; 20 | class D : public B { 21 | public: 22 | D() 23 | { 24 | x++; 25 | i++; 26 | } 27 | ~D() 28 | { 29 | x--; 30 | i--; 31 | } 32 | int f1(B o) { return 5 + get_i(); } 33 | }; 34 | int f(B* q) 35 | { 36 | return (q->get_x()) + 1; 37 | } 38 | int main() 39 | { 40 | B* p = new B[10]; 41 | cout << f(p); 42 | delete[] p; 43 | p = new D; 44 | cout << p->f1(p); 45 | delete p; 46 | cout << D::get_x(); 47 | return 0; 48 | } -------------------------------------------------------------------------------- /surse/prob79.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int x; 5 | 6 | public: 7 | B(int i = 2) 8 | : x(i) 9 | { 10 | } 11 | int get_x() const { return x; } 12 | }; 13 | class D : public B { 14 | int* y; 15 | 16 | public: 17 | D(int i = 2) 18 | : B(i) 19 | { 20 | y = new int[i]; 21 | for (int j = 0; j < i; j++) 22 | y[j] = 1; 23 | } 24 | D(D& a) 25 | { 26 | y = new int[a.get_x()]; 27 | for (int i = 0; i < a.get_x(); i++) 28 | y[i] = a[i]; 29 | } 30 | int& operator[](int i) { return y[i]; } 31 | }; 32 | ostream& operator<<(ostream& o, const D& a) 33 | { 34 | for (int i = 0; i < a.get_x(); i++) 35 | o << a[i]; 36 | return o; 37 | } 38 | int main() 39 | { 40 | D ob(5); 41 | cout << ob; 42 | return 0; 43 | } -------------------------------------------------------------------------------- /surse/prob98.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | 5 | class A { 6 | int x; 7 | 8 | public: 9 | A(int i = 2) 10 | : x(i) 11 | { 12 | } 13 | int get_x() const { return x; } 14 | }; 15 | class B : public A { 16 | 17 | int* y; 18 | 19 | public: 20 | B(int i = 2) 21 | : A(i) 22 | { 23 | y = new int[i]; 24 | for (int j = 0; j < i; j++) 25 | y[j] = 1; 26 | } 27 | B(B& b) 28 | { 29 | y = new int[b.get_x()]; 30 | for (int i = 0; i < b.get_x(); i++) 31 | y[i] = b[i]; 32 | } 33 | int& operator[](int i) const { return y[i]; } 34 | }; 35 | ostream& operator<<(ostream& o, const B b) 36 | { 37 | for (int i = 0; i < b.get_x(); i++) 38 | o << b[i]; 39 | return o; 40 | } 41 | 42 | 43 | 44 | int main() 45 | { 46 | const B b(5); 47 | cout << b; 48 | return 0; 49 | } -------------------------------------------------------------------------------- /surse/prob29.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B { 4 | int i; 5 | 6 | public: 7 | B() { i = 1; } 8 | virtual int get_i() { return i; } 9 | }; 10 | class D : virtual public B { 11 | int j; 12 | 13 | public: 14 | D() { j = 2; } 15 | int get_i() { return B::get_i() + j; } 16 | }; 17 | class D2 : virtual public B { 18 | int j2; 19 | 20 | public: 21 | D2() { j2 = 3; } 22 | int get_i() { return B::get_i() + j2; } 23 | }; 24 | class MM : public D, public D2 { 25 | int x; 26 | 27 | public: 28 | MM() { x = D::get_i() + D2::get_i(); } 29 | int get_i() { return x; } 30 | }; 31 | int main() 32 | { 33 | B* o = new MM(); 34 | cout << o->get_i() << "\n"; 35 | MM* p = dynamic_cast(o); 36 | if (p) 37 | cout << p->get_i() << "\n"; 38 | D* p2 = dynamic_cast(o); 39 | if (p2) 40 | cout << p2->get_i() << "\n"; 41 | return 0; 42 | } -------------------------------------------------------------------------------- /surse/prob78.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | class B 4 | { 5 | protected: 6 | int i; 7 | 8 | public: 9 | B(int j = 5) 10 | { 11 | cout << " cb "; 12 | i = j - 2; 13 | } 14 | ~B() { cout << " db "; } 15 | int get_i() { return i; } 16 | }; 17 | class D1 : public B 18 | { 19 | int j; 20 | 21 | public: 22 | D1(int k = 10) 23 | { 24 | cout << " cd1 "; 25 | j = i - k + 3; 26 | } 27 | ~D1() { cout << " dd1 "; } 28 | }; 29 | class D2 : public D1 30 | { 31 | int k; 32 | 33 | public: 34 | D2(int l = 15) 35 | { 36 | cout << " cd2 "; 37 | k = i + j - l + 3; 38 | } 39 | ~D2() { cout << " dd2 "; } 40 | }; 41 | D1 f(D1 d1, D2 d2) { return d1.get_i() + d2.get_i(); } 42 | int main() 43 | { 44 | D2 ob2; 45 | D1 ob1(3); 46 | cout << f(ob1, ob2).get_i() + ob2.get_i(); 47 | return 0; 48 | } -------------------------------------------------------------------------------- /surse/prob20.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | struct B { 5 | int i; 6 | 7 | public: 8 | B() { i = 1; } 9 | virtual int get_i() { return i; } 10 | } a; 11 | class D : virtual public B { 12 | int j; 13 | 14 | public: 15 | D() { j = 2; } 16 | int get_i() { return B::get_i() + j; } 17 | }; 18 | class D2 : virtual public B { 19 | int j2; 20 | 21 | public: 22 | D2() { j2 = 3; } 23 | int get_i() { return B::get_i() + j2; } 24 | }; 25 | class MM : public D2, public D { 26 | int x; 27 | 28 | public: 29 | MM() { x = D::get_i() + D2::get_i(); } 30 | int get_i() { return x; } 31 | }; 32 | { 33 | MM b; 34 | } 35 | int main() 36 | { 37 | B* o = new MM(); 38 | cout << o->get_i() << "\n"; 39 | MM* p = dynamic_cast(o); 40 | if (p) 41 | cout << p->get_i() << "\n"; 42 | D* p2 = dynamic_cast(o); 43 | if (p2) 44 | cout << p2->get_i() << "\n"; 45 | return 0; 46 | } -------------------------------------------------------------------------------- /surse/prob5.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | //ordinea constructorilor 4 | class B 5 | { 6 | int i; 7 | 8 | public: 9 | B() { i = 1; } 10 | virtual int get_i() { return i; } 11 | }; 12 | class D : virtual public B 13 | { 14 | int j; 15 | 16 | public: 17 | D() { j = 2; } 18 | int get_i() { return B::get_i() + j; } 19 | }; 20 | class D2 : virtual public B 21 | { 22 | int j2; 23 | 24 | public: 25 | D2() { j2 = 3; } 26 | int get_i() { return B::get_i() + j2; } 27 | }; 28 | class MM : public D, public D2 29 | { 30 | int x; 31 | 32 | public: 33 | MM() { x = D::get_i() + D2::get_i(); } 34 | int get_i() { return x; } 35 | }; 36 | int main() 37 | { 38 | B *o = new MM(); 39 | cout << o->get_i() << "\n"; 40 | MM *p = dynamic_cast(o); 41 | if (p) 42 | cout << p->get_i() << "\n"; 43 | D *p2 = dynamic_cast(o); 44 | if (p2) 45 | cout << p2->get_i() << "\n"; 46 | return 0; 47 | } -------------------------------------------------------------------------------- /surse/prob13.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int f(int y) 5 | { 6 | try 7 | { 8 | if (y > 0) 9 | throw y; 10 | } 11 | catch (int i) 12 | { 13 | throw; 14 | } 15 | return y - 2; 16 | } 17 | int f(int y, int z) 18 | { 19 | try 20 | { 21 | if (y < z) 22 | throw z - y; 23 | } 24 | catch (int i) 25 | { 26 | throw; 27 | } 28 | return y + 2; 29 | } 30 | float f(float &y) 31 | { 32 | cout << " y este referinta"; 33 | return (float)y / 2; 34 | } 35 | int main() 36 | { 37 | int x; 38 | try 39 | { 40 | cout << "Da-mi un numar par: "; 41 | cin >> x; //se va citi numarul 2 42 | if (x % 2) 43 | x = f(x, 0); 44 | else 45 | x = f(x); 46 | cout << "Numarul " << x << " e bun!" << endl; 47 | } 48 | catch (int i) 49 | { 50 | cout << "Numarul " << i << " nu e bun!" << endl; 51 | } 52 | return 0; 53 | } -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 4096) { 108 | echo "Sursa trebuie sa aiba maxim 4096 bytes"; 109 | exit(); 110 | } 111 | 112 | $temp = tmpfile(); 113 | 114 | $metaDatas = stream_get_meta_data($temp); 115 | $tmpFilename = $metaDatas['uri']; 116 | 117 | rename($tmpFilename, $tmpFilename .= '.cpp'); 118 | 119 | file_put_contents($tmpFilename, $data); 120 | 121 | //herokuapp fix 122 | exec("/usr/bin/g++ -w -Wfatal-errors ".$tmpFilename." -o " .$tmpFilename. ".bin 2>&1", $out); 123 | //exec("/usr/bin/g++ -w -Wfatal-errors ".$tmpFilename." -o " .$tmpFilename. ".bin 2>&1", $out); 124 | 125 | $out = implode("\n",$out); 126 | 127 | $out = trim(str_replace("compilation terminated due to -Wfatal-errors.","",$out)); 128 | 129 | if ($out=="") { 130 | //$_SESSION['solved'][$problema_id] = 'solved'; 131 | echo "ok"; 132 | } else { 133 | $_SESSION['solved'][$problema_id] = 'wrong'; 134 | echo $out; 135 | } 136 | 137 | if (file_exists($tmpFilename)) 138 | unlink($tmpFilename); 139 | 140 | if (file_exists($tmpFilename.'.bin')) 141 | unlink($tmpFilename.'.bin'); 142 | 143 | exit(); 144 | } 145 | } 146 | 147 | include 'template.php'; 148 | 149 | ?> -------------------------------------------------------------------------------- /template.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | OOP Quiz 20 | 21 | 22 | 23 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 133 | 134 | 135 | 136 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 159 | 160 | 161 |
162 |
163 |
164 |

Problema

165 |
166 |
167 |
168 |
169 |
170 | 171 | 172 |
173 |
174 |

175 | 180 | 188 |
189 |
190 |
191 |
192 | 193 | 194 | 195 | 196 |
197 | 198 |
199 |
200 |
201 | 204 |
205 |
206 | 207 |
208 | 209 | 210 | 211 | 212 | 213 | 414 | 415 | 416 | --------------------------------------------------------------------------------