В объявлении класса (возможно, в заголовочном файле) вам нужно что-то похожее на:
class StackInt {
public:
StackInt();
~StackInt();
}
Чтобы сообщить компилятору, что вам не нужны версии, сгенерированные компилятором по умолчанию (поскольку вы их предоставляете).
Возможно, в декларации будет что-то большее, но вам понадобятся хотя бы те - и это поможет вам начать.
Вы можете увидеть это, используя очень простое:
class X {
public: X(); // <- remove this.
};
X::X() {};
int main (void) { X x ; return 0; }
Скомпилируйте это, и это работает. Затем удалите строку с маркером комментария и скомпилируйте снова. Вы увидите, что ваши проблемы появятся тогда:
class X {};
X::X() {};
int main (void) { X x ; return 0; }
qq.cpp:2: error: definition of implicitly-declared `X::X()'