Qual é a diferença entre um método e uma função?
Qual é a diferença entre um método e uma função?
Uma função tem como objetivo realizar uma tarefa específica e pode ser acessada por qualquer parte do programa após a sua declaração já o método também realiza uma tarefa específica mas ela está diretamente ligada com a classe, ou seja, geralmente ela tem a função de manipular os atributos da classe e somente os objetos da classe podem acessa-la.
Métodos, funções e procedimentos são nomes distintos para conceitos semelhantes. Existem diferenças sutis, no entanto, muitas vezes estes conceitos são usados de forma intercambiável.
Em um contexto orientado a objetos, dizemos que um tipo é composto por membros (métodos e atributos). Atributos são os dados que guardam o estado do objeto, e métodos os dispositivos usados para alterar o estado sem romper com o encapsulamento. Membros podem ainda ser de instância ou de classe.
class a_class {
public:
int get_number() {
return number;
}
void set_number(int value) {
number = value;
}
private:
int number = 0;
};
Procedimentos, em um contexto de programação procedural, são usados para modularizar o problema em rotinas e sub-rotinas. Fazem uso de side-effects, e não retornam um valor.
Ex: procedimento de ordenação de arrays da biblioteca padrão do C.
void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const void*));
Funções computam e retornam um valor com base nos parâmetros de entrada. Em um contexto de programação funcional, em geral tratamos de funções puras, isto é, que não possuem side-effects.
Ex: função da biblioteca padrão do C para cálculo da exponencial de x.
double exp (double x);