Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 6ba95eb068aab5480bfe9a9a0d0fa03c > files > 217

blitz-devel-0.9-13.fc13.x86_64.rpm

#include <blitz/array.h>

using namespace blitz;       

class Base {
       public:
         virtual void multiply(Array<int,1>& array) const=0;
       };

       class Derived1 : public Base {
       public:
         Derived1(){}
         void multiply(Array<int,1>& array) const {array*=1;}
       };

       class Derived2 : public Base {
       public:
         Derived2(){}
         void multiply(Array<int,1>& array) const {array*=2;}
       };

       Array<int,1>& operator*=(Array<int,1>& array, const Derived1& object) {
         object.multiply(array);
         return array;
       }

int main()
{
       Array<int,1> array(5);
       array=1;

       Derived1 derived1;

       array*=derived1;
}