ragazzi non capisco quest'errore

ho questo semplice codice:

codice:
#include <iostream>
#include <vector>
using namespace std;

class Ciao{
public:
	Ciao();
	~Ciao();
	int value;
};

int main() {
	
	vector<Ciao> myVector;

	return 0;
}
mi fa errore:
"1>main.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall Ciao::~Ciao(void)" (??1Ciao@@QAE@XZ) non risolto nella funzione "public: void * __thiscall Ciao::`scalar deleting destructor'(unsigned int)" (??_GCiao@@QAEPAXI@Z)"

se al posto del disturttore metto anche le parentesi graffe non mi fa più errore...
cioè se metto
~Ciao(){}

funziona bene...

e non riesoc a capire il perchè... soprattutto perchè non capisco fa quest'errore solo sul distruttore e il costruttore anhce senza graffe non fa nessun errore :S