ariável estática C ++ e erro externo não resolvi
Eu esperava poder obter algum esclarecimento sobre variáveis estáticas de uma class
Por exemplo: Eu tenho duas classes diferentes que executam funções completamente diferentes, alfa e beta. Em alpha, declaro uma variável estática do tipo beta para que fique assim:
//alpha.h
#pragma once
#include <iostream>
#include "beta.h"
class alpha{
public:
alpha(){
}
static beta var;
void func(){
var.setX(3);
}
void output(){
}
};
//beta.h
#pragma once
#include <iostream>
using namespace std;
class beta{
public:
int x;
char y;
beta(){
x = 0;
y = ' ';
}
void setX(int _X){
x = _X;
}
};
//main.cpp
#include <iostream>
#include <iomanip>
#include "alpha.h"
using namespace std;
int main(){
alpha x, y, z;
x.func();
}
gora, quando tento compilar isso, recebo um erro externo não resolvido:
error LNK2001: símbolo externo não resolvido "público: classe estática beta alfa :: var" (? var @ alpha @@ 2Vbeta @@ A)
Não sei ao certo o que mudar ou o que mais preciso adicionar para fazer algo assim funcionar. Quero que x, ye z compartilhem essencialmente a mesma variável beta. Eu acho que posso realizar a mesma coisa, apenas passando por referência uma variável beta em cada uma delas. Mas quero saber se é possível fazer a mesma coisa usando a palavra-chave static aqui, porque membros estáticos de uma classe têm o mesmo valor em qualquer instância de uma classe. A menos que eu tenha essa definição errada.