Não quero aprofundar nos conceitos de um método/atributo estático nesse momento, então hoje vou assumir que saibam o que é um método ou atributo estático (o que pode não ser verdade, uma vez que nunca aprendi direito na escola e nem na faculdade).
O motivo de estar fazendo esse tutorial é porque levei um bom tempo para poder entender o que estava acontecendo. Na maioria das linguagens de programação, basta por o modificador static na frente que já é suficiente, mais ou menos como no exemplo abaixo:
Arquivo: A.h
class A{
static int staticAtr;
public void metodo();
}
Só que se tentarmos acessar diretamente em um método qualquer...
Arquivo: A.cpp
#include "A.h"
void A::metodo(){
A::staticAtr = 1;
}
Irá dar um erro de linker, avisando que A::staticAtr não está definido. O que deve fazer aí é declarar o atributo estático também no arquivo cpp, como mostra o exemplo abaixo:
Arquivo: A.cpp
#include "A.h"
int A::staticAtr;
void A::metodo(){
A::staticAtr = 1;
}
A partir daqui, você pode usar livremente o atributo estático.
Nenhum comentário:
Postar um comentário