Ближайшим эквивалентом статического класса в C ++ является класс, содержащий только статические переменные-члены. Это известно как шаблон monostate . Такой класс означает, что все экземпляры этого класса будут иметь одинаковое состояние. Синтаксис использования экземпляра monostate подобен обычному классу (в отличие от одноэлементного класса), и действительно, класс monostate может быть преобразован в обычный класс без изменения какого-либо его использования. Э.Г.
// Monostate class
public class Administrator
{
private:
static int _userId;
public
int UserId() { return _userId; }
}
// Initializing the monostate value
int Administrator::_userId = 42;
// Using an instance of a monostate class
void Foo()
{
Administrator admin = new Administrator();
Assert.Equals( 42, admin.UserId() ); // will always be 42
}