If you're not deriving then don't use protected, because it only makes sense in the context of a derived class. Use private or public instead then your intent is clear. By using protected in a class that is not to be derived you are intentionally obfuscating the meaning of your code.

Public is visible to all, private is visible only to the class, and protected is visible to the class and its derivatives. So this is the same as a private constructor, which means only the class itself and its friends can create an object of that class.

class some
	int x;
protected: some() { x=90; }

void test16()
	some wibble;
There will be no output because this will not compile:
error C2248: 'some::some' : cannot access protected member declared in class 'some'