Results 1 to 9 of 9

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Deleted User 4eRNoBiL's Avatar
    Join Date: Oct:2005
    Location:
    Posts: 739

    operator+() ++

    , , . drob . , . double. .

    Code:
    class vektor
    {
     drob *element;
     long razmer;
     drob _dljina 
     // ...  
    
    
     void initNULL()
     {
      id = random(1000);
      razmer = -1;
      _dljina = 0;
     }
    
     void init(int broy_elementi)
     { 
      element = new drob [broy_elementi];
      razmer = broy_elementi;
     }
    
     void osvobodiPamet() 
     {
    	 printf("destructor-%d", id);
    
      if (razmer > 0)
    	  delete [] element;
      initNULL();
     }
    
    public:
     vektor(){initNULL();}
     vektor(int broy_elementi) { initNULL(); init(broy_elementi); }
     ~vektor() {osvobodiPamet();}
    
    // 
    
    vektor& operator=(const vektor &a)
    {  
     id = random(1000);
     if (this != &a)
     {
      osvobodiPamet();
      init(a.razmer);
      for(i=0; i<razmer; i++) element[i] = a.element[i];
     }
     return *this;
    }
    
    vektor& operator+=(const vektor &a)
     {
      if (a.razmer != razmer) greszni_razmeri();
      else
           for(i=0; i<razmer; i++) element[i] += a.element[i];
    
      return *this;
     }
    
    vektor& operator+(const vektor &a, const vektor &b);
    };
    
    vektor& operator+(const vektor &a, const vektor &b)
    {
     vektor ret;
     ret = a;
    
     return ret += b;
    }
    , return operator+(), ret . , , . "" - , .

    , , . - ? int - , ... , .
    Last edited by 4eRNoBiL; 13th September 2009 at 12:15. Reason:
    Fujistu Lifebook E756 | Core i7-6500U / 400MHz-3.1GHz | 8 GB DDR4-2133 | Samsung PM871 / 256 GB SSD | 15" 1920x1080 | Manjaro Linux + kernel 4.19

  2. #2
    ɐ-əpoɔᴉu⋂ ɐ ə anrieff's Avatar
    Join Date: Apr:2004
    Location: Sofia
    Posts: 8,448
    - return type- operator+ vektor, vektor&.

    , friend , .. return type, - operator+ private . , operator+ friend .

    .. - ( operator+) vektor, vektor&.
    Last edited by anrieff; 13th September 2009 at 12:47.
    , . .
    "640K ught to be enough for anybody" - Bill Gates, 1981
    ::Machine specs::Fract::AGG::::Baileys::blog::YouTube channel

  3. #3
    Deleted User 4eRNoBiL's Avatar
    Join Date: Oct:2005
    Location:
    Posts: 739
    , . operator+ , main() - , . , .
    Code:
    class ...
    {
    //...
    
    vektor operator+(const vektor &a)
    {
     vektor ret;
     ret = *this;
    
     return ret += a;
    }
    };
    ...
    Fujistu Lifebook E756 | Core i7-6500U / 400MHz-3.1GHz | 8 GB DDR4-2133 | Samsung PM871 / 256 GB SSD | 15" 1920x1080 | Manjaro Linux + kernel 4.19

  4. #4
    Pesho's Avatar
    Join Date: Nov:2001
    Location: Sofia
    Posts: 5,169
    Quote Originally Posted by 4eRNoBiL View Post
    , . operator+ ...

    . temporary ret ( RVO ). , copy-, drob *element. temp , ret , *element.
    , !

  5. #5
    Deleted User 4eRNoBiL's Avatar
    Join Date: Oct:2005
    Location:
    Posts: 739
    ! , .
    Code:
    vektor(vektor &a)
     {
      initNULL();
      init(a.razmer);
      for (i=0; i<razmer; i++) element[i] = a.element[i];
     }
    , anrieff , ++ . , .

    , ! !
    Last edited by 4eRNoBiL; 13th September 2009 at 14:04. Reason:
    Fujistu Lifebook E756 | Core i7-6500U / 400MHz-3.1GHz | 8 GB DDR4-2133 | Samsung PM871 / 256 GB SSD | 15" 1920x1080 | Manjaro Linux + kernel 4.19

  6. #6
    Registered User
    Join Date: Dec:2007
    Location: Sofia
    Posts: 366
    .

    C++ ( 'Effective C++') , , .

    vektor, C++ STL.

    ( - " ") . ( Boost), .

  7. #7
    ɐ-əpoɔᴉu⋂ ɐ ə anrieff's Avatar
    Join Date: Apr:2004
    Location: Sofia
    Posts: 8,448
    - , ( 4eRNoBiL) " " (, , copy operator = ), , copy - operator = private .

    , .
    , . .
    "640K ught to be enough for anybody" - Bill Gates, 1981
    ::Machine specs::Fract::AGG::::Baileys::blog::YouTube channel

  8. #8
    Pesho's Avatar
    Join Date: Nov:2001
    Location: Sofia
    Posts: 5,169
    ( - ) "" . drob* std::vector<drob>. Smart - - boost, C++1x.
    , !

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 . .
iskamPC.com | mobility.BG | Bloody's Techblog | | 3D Vision Blog |