Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Casa de expeditii

Websockets (Rabbit.js) + RabbitMQ...

Nu vad telefonul (Allview A5) pe ...

TVR pregatește un late night...
 Problema WiFi Tv Samsung UE40ES6710

Daca ai nevoie de prezentari Powe...

[UNDE] Schimbare baterie iPhone 7...

Evolutie rata Prima casa 2016
 Sfaturi achizitionare masina - 13...

Monitoare Samsung S27A350H

Chrome & IE

Ferma animalelor-George Orwell
 SMACH Z / PRO / ULTRA consola por...

SMACH Z / PRO / ULTRA consola por...

Sfaturi/pareri Renault Megane 2 1...

Motorul distruge bujia 3
 

Right and left reference

- - - - -
  • Please log in to reply
2 replies to this topic

#1
TheOriginals

TheOriginals

    Junior

  • Grup: Members
  • Posts: 51
  • Înscris: 30.05.2016
Salut..
Incerc sa ma lamuresc putin cum e cu right and left ref (asta am inteles) problema mea e ca nu reusesc sa-mi dau seama din ce gasesc pe net(fiecare cu o versiune, mai sunt si care bat) despre modul in care se creeaza obiectele temporare (cate si cum) si cum sunt transferate.

Am un exemplu simplu:
#include<iostream>
#include<vector>
using namespace std;
class boVector {
private:
int size;
public:
boVector() {};
boVector(const boVector& rhs) { cout << "copy Ctor."<<endl; }
boVector(boVector&& rhs) { cout << "move Ctor." << endl; }
};
void foo(boVector v) {}
boVector createBoVector() { return boVector(); }
int main()
{
//copy
boVector reausable = createBoVector();
foo(reausable);
//move
foo(std::move(createBoVector()));
return 0;
}



Am incercat sa fac si o imagine dar cand am inceput sa o desenez mi-am dat seama ca nu stiu prea bine ce se intampla..
[ https://preview.ibb.co/gwPB6m/F_r_titlu.png - Pentru incarcare in pagina (embed) Click aici ]

Ceva intrebari rusioase Posted Image
  • Ce se intamplă când se alocă un obiect temporar?

  • Cand este distrus ? (tot timpul la finalul acoladelor)

  • Cum se realizează transferul în cadrul rRef (cate obiecte se generează în cele din urmă)?

  • Dacă obiectul meu este temporar și eu copii o referință către el atunci cand este distrus iar eu inca folosesc o referinta catre el asta nu ar trebui sa conducă în undefined behavier?

  • Cum se realizează transferul unei variabile rValue nu neapărat referință?
Mulțumesc Posted Image

#2
TheOriginals

TheOriginals

    Junior

  • Grup: Members
  • Posts: 51
  • Înscris: 30.05.2016
Nu ma ajuta nimeni cu o idee? :D
Am tot cautat pe net dar nimeni nu a reusit sa ma lumineze cum ne salveaza move Ctor si cum reuseste sa tina adresa si sa o folosesasca a unei variabile temporare. :(

#3
dani.user

dani.user

    Guru Member

  • Grup: Moderators
  • Posts: 23,984
  • Înscris: 24.02.2007
E prea complexa tema pentru a o rezuma aici.

Cand returnezi ceva vezi ca mai ai copy-ellision, ce a devenit garantata in noul standard (si era aplicata de unele compilatoare si inainte, ca o optimizare).

Anunturi


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate