Não entendi a diferença de usar o (.) para usar o (::).
No caso um ponto(.) é usado para chamar a função de um objeto, e o outro (::) para construir a função apartir de um tipo?
Não entendi a diferença de usar o (.) para usar o (::).
No caso um ponto(.) é usado para chamar a função de um objeto, e o outro (::) para construir a função apartir de um tipo?
Olá João,
A sua dúvida é muito comum para quem ta iniciando em C++. A diferença entre o . (ponto) e o :: (operador de resolução de escopo) está no contexto de uso.
É usado para acessar membros (métodos ou atributos) de um objeto.
MinhaClasse obj;
obj.minhaFuncao(); // Aqui usamos o ponto para chamar a função a partir de um objeto
Esse operador é usado para acessar membros estáticos ou funções fora da classe, ou para definir funções da classe fora do corpo dela.
class MinhaClasse {
public:
void minhaFuncao();
};
// Fora da classe
void MinhaClasse::minhaFuncao() {
// Lógica
}
Elementos estáticos
class MinhaClasse {
public:
static int contador;
};
int MinhaClasse::contador = 0;