Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Bazna {
- int p;
- public:
- Bazna() : p(0) {}
- virtual void f(int x) = 0;
- virtual int g(int x) const { return x + 1; }
- bool operator !(Bazna b) { return b.p != 0; }
- Bazna &operator ++(Bazna &b) { b.p++; return *this; }
- friend int operator ()(Bazna b, int x) { return b.p + x; }
- void operator[](int x) { std::cout << p - x; }
- };
- class Izvedena : public Bazna {
- int q;
- public:
- Izvedena(int p, int q) : p(p), q(q) {}
- void f(int x) override { (*this)[x]; }
- virtual int g(int x) override { return x - 1; }
- Izvedena operator --(int) { return Izvedena(p - 1, q - 1); }
- };
- int main() {
- Bazna b; Izvedena i(3, 5);
- Izvedena *p = new Izvedena[10];
- ++b; --i; b[b(3)];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement