In the class declaration (probably in a header file) you need to have something that looks like:
class StackInt {
public:
StackInt();
~StackInt();
}
To let the compiler know you don't want the default compiler-generated versions (since you're providing them).
There will probably be more to the declaration than that, but you'll need at least those - and this will get you started.
You can see this by using the very simple:
class X {
public: X(); // <- remove this.
};
X::X() {};
int main (void) { X x ; return 0; }
Compile that and it works. Then remove the line with the comment marker and compile again. You'll see your problems appear then:
class X {};
X::X() {};
int main (void) { X x ; return 0; }
qq.cpp:2: error: definition of implicitly-declared `X::X()'