While the other answers are true, there is a new technique in C++11 for expressing that : deleted default constructor
It allows forbidding a function without depending on any other trick. It also clearly express your intention in the code.
class X
{
public:
X(int) {}
X() = delete; // will never be generated
};
int main()
{
X x; // will not compile;
X y(1); // will compile.
return 0;
}