2015-11-14 2 views
-1

Я хочу, чтобы экземпляры массива struct имели свои индивидуальные имена, но из примеров, которые я видел при инициализации экземпляра структуры, я не знал, как это сделать. но .. я хочу сделать что-то вроде этого:создание и инициализация структурных массивов

struct st 
{ 
.... 
} 

struct st A; 
A.element = value; 

struct st B; 
B.element = value; 

struct st_array[2]; 
struct st_array[0] = A 
struct st_array[1] = B; 

, но это не сработало, так что я задаюсь вопросом, как я мог это сделать

ответ

0

Во-первых, классы, перечислений и структуры являются завершено с ';' после закрывающей скобки (или области). т.е.

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/

Смежные вопросы