Tag Archives: Murilo

C/C++: Accessors(getters) e mutators(setters) de forma fácil usando macros

Continuando

Anteriormente, acho que até o ultimo post que eu fiz, falei sobre accessors(getters) e mutators(setters).

Isso foi a algum tempo atrás, e apesar de ser uma maneira muito elegante, ainda é uma maneira um pouco repetitiva, no sentido que você deve se preocupar e repetir algumas partes do processo. Isso é uma parte do processo que pode ser feita de forma automática, com muitas vantagens, com uma ajudinha de macros.

Estava vendo que o Murilo fez algo de forma parecida, e achei muito interessante. Resolvi copiar e alterar para o modo como eu mostrei em meu post passado, e mudei algumas coisas, como o nome de “declare” para “declare_am”, só para fica mais explicito….

Vejam agora que toda vez que eu quiser declarar uma variável data do tipo inteiro com getters e setters, é só usar declare_am(int,data)! Muito fácil.

Segue o código abaixo, usem para facilitar a vida, e qualquer discussão estamos ai :].

#include	<iostream>
#include	<cstdlib>

#define declare_am(type, name) \
private: type _##name; \
public: \
void name(const type& var){\
	_##name = var;\
}\
\
const type & name(){\
	return _##name; \
}\

class Teste_accessor_mutator{
	declare_am(int,data);
	declare_am(int,x);
	declare_am(int,y);
};

int main( int argc, char *argv[] ){
	Teste_accessor_mutator teste;

	teste.data(100);
	teste.x(1);
	teste.y(2);
	std::cout << teste.data() << std::endl ;
	std::cout << teste.x() << std::endl ;
	std::cout << teste.y() << std::endl ;
	return EXIT_SUCCESS;
} /* ---------- end of function main ---------- */


Mais uma dica de blog

Andando por ai, vi e passo a recomendar o blog do Murilo.

O cara é alguem com muito futuro e faz uns posts muito legais.

Antigamente rolou um post no blog do vidageek(nem vou colocar o endereço aqui, ele não merece…) sobre c/c++, basicamente esculhambando a linguagem. No blog do Murilo ele fez um post bem legal defendendo a linguagem. Vale a pena dar uma lida, para você poder se esclarecer melhor caso pense que c/c++ é uma linguagem ruim.

Também tem posts negando mitos, dando destaque a esse aqui.

Recomendo a quem programa em c/c++ que de uma lida nesse blog, porque ate eu quero que o meu blog se torne assim quando eu crescer :p.


%d bloggers like this: