Articles of pass by reference

C ++ – passaggio di riferimenti a std :: shared_ptr o boost :: shared_ptr

Se ho una funzione che deve funzionare con un shared_ptr , non sarebbe più efficiente passarci un riferimento (in modo da evitare di copiare l’object shared_ptr )? Quali sono i possibili effetti collaterali negativi? Immagino due possibili casi: 1) all’interno della funzione viene fatta una copia dell’argomento, come in ClassA::take_copy_of_sp(boost::shared_ptr &sp) { … m_sp_member=sp; //This […]

C ++ passa un array per riferimento

è permesso passare una matrice per riferimento? void foo(double& *bar) Sembra che il mio compilatore dica no. Perché? Qual è il modo corretto per passare un array per riferimento? O un lavoro in giro? Ho un argomento dell’array che il mio metodo dovrebbe modificare e che dovrei recuperare in seguito. In alternativa, potrei rendere questo […]

Perché questo object non viene passato per riferimento quando si assegna qualcos’altro?

So che in JS gli oggetti vengono passati per riferimento, ad esempio: function test(obj) { obj.name = ‘new name’; } var my_obj = { name: ‘foo’ }; test(my_obj); alert(my_obj.name); // new name Ma perché il sotto non funziona: function test(obj) { obj = {}; } var my_obj = { name: ‘foo’ }; test(my_obj); alert(my_obj.name); // […]

Passa una matrice a una funzione in base al valore

Di seguito è riportato uno snippet del libro C Programming Just the FAQs . Non è sbagliato in quanto gli Array non possono mai essere passati per riferimento? VIII.6: Come si può passare una matrice a una funzione in base al valore? Risposta: Un array può essere passato a una funzione in base al valore […]

‘passa parametro per riferimento’ in Ruby?

In Ruby, è ansible passare per riferimento un parametro con semantica del tipo di valore (ad esempio un Fixnum)? Sto cercando qualcosa di simile alla parola chiave ‘ ref ‘ di C #. Esempio: def func(x) x += 1 end a = 5 func(a) #this should be something like func(ref a) puts a #should read […]

Passa per riferimento o passa per valore?

Quando apprendi un nuovo linguaggio di programmazione, uno dei possibili ostacoli che potresti incontrare è la domanda se la lingua sia, per impostazione predefinita, pass-by-value o pass-by-reference . Quindi, ecco la mia domanda a tutti voi, nella vostra lingua preferita, come si fa effettivamente? E quali sono le possibili insidie ? La tua lingua preferita […]

Qual è l’uso di “ref” per le variabili di tipo di riferimento in C #?

Capisco che se passo un parametro ( int , struct , ecc.) Come parametro (senza la parola chiave ref ), una copia di tale variabile viene passata al metodo, ma se uso la parola chiave ref un riferimento a tale la variabile è passata, non una nuova. Ma con i tipi di riferimento, come le […]

Come fare l’equivalente del passaggio per riferimento per le primitive in Java

Questo codice Java: public class XYZ { public static void main(){ int toyNumber = 5; XYZ temp = new XYZ(); temp.play(toyNumber); System.out.println(“Toy number in main ” + toyNumber); } void play(int toyNumber){ System.out.println(“Toy number in play ” + toyNumber); toyNumber++; System.out.println(“Toy number in play after increement ” + toyNumber); } } produrrà questo: Numero del […]

Ci sono dei vantaggi nel passare per puntatore passando per riferimento in C ++?

Quali sono i vantaggi del passaggio del puntatore al passaggio per riferimento in C ++? Ultimamente, ho visto un certo numero di esempi che hanno scelto di passare argomenti di funzione tramite puntatori invece di passare per riferimento. Ci sono benefici a fare questo? Esempio: func(SPRITE *x); con una chiamata di func(&mySprite); vs. func(SPRITE &x); […]

Perché dovrei usare la parola chiave “final” su un parametro del metodo in Java?

Non riesco a capire dove la parola chiave final sia davvero utile quando viene utilizzata sui parametri del metodo. Se escludiamo l’uso di classi anonime, leggibilità e dichiarazione di intenti, a me sembra quasi inutile. Far rispettare il fatto che alcuni dati rimangono costanti non è forte come sembra. Se il parametro è una primitiva, […]