segunda-feira, 28 de março de 2011

Dicas de Programação: Como passar um parâmetro por referência sem ponteiro em C++

Esta vai para um colega que me pediu mais dicas em C++.

A coisa mais chata em C++ (e em C) é passar um parâmetro por referência através de ponteiro:

#include <stdio.h>

void somaMaisDois(int* num) {
(*num) = (*num) + 2;
}

int main(int num_args, char** args) {
int num = 0;
somaMaisDois(&num);
printf("%d\n",num);
return 0;
}

Mas existe uma artimanha para evitar de colocar estrelinhas no código... :P
Basta usar o & "E comercial" em vez do ponteiro!
Exemplo:

#include <stdio.h>

void somaMaisDois(int& num) {
num = num + 2;
}

int main(int num_args, char** args) {
int num = 0;
somaMaisDois(num);
printf("%d\n",num);
return 0;
}

Uia, reduziu as estrelas da minha constelação (quer dizer, da minha codificação). :P

Obs.: Ah... Isso só vale para compiladores C++.

Até mais!

Nenhum comentário: