Во-первых, классы, перечислений и структуры являются завершено с ';' после закрывающей скобки (или области). т.е.
struct St {
....
};//<--- end of scope terminator
Далее, что именно вы пытаетесь сделать после этого бита? Я предполагаю, что вы пытаетесь определить случаи его использования, но вы все исправите. Вы должны иметь член в структуре, чтобы установить значение, это может быть экземпляр самой структуры. Как это ...
struct St {
St element;
};
Затем вы можете установить значение члена структур, но в данном конкретном случае вы, вероятно, захотите еще несколько элементов данных для этого sturct для любого использования ...
struct St {
char value;
St element;
St(char value, St element) // struct constructor
: this->value(value), this->element(element){} // init list
};
Теперь вы можете использовать структуру в остальной части кода, просто позвонив по его идентификатору, который в этом случае будет «St».
Несмотря на то, что то, что вы пытаетесь достичь (я мог ошибаться), было бы лучше подходит для перечисляемого значения, которое (в основном) способ определения вашего собственного примитивного, переключаемого типа переменной. Примером того, где перечисление было бы полезно было бы что-то вроде ...
const int MON = 0, TUE = 1, ....// rather than using "const int's"
// define them as enumerations
enum Day {MON,TUE,WED,THU,FRI,SAT,SUN};
/*each enum is assigned an integer ordinal that corresponds to its location
as it is declared, so MON == 0, TUE == 1, and so on. You can alternatively
assign your own value to it in an instance where the default ordinal would
not be useful, for instance if you wanted them as characters...*/
enum Foo {Bar = 'B', Qat = 'Q', ...};
// or
enum Ratings {PG13 = 13, R = 18, ...};
Вы, вероятно, извлечь выгоду из ресурса, как:
http://www.tutorialspoint.com/cplusplus/cpp_references.htm
или
http://en.cppreference.com/w/