Struct
구조체(Structure)은 간단한 변수들의 모음이다. 어떠한 자료형도 구조체에 들어올 수 있으며, 구조체 그 자체나 사용자가 만든 자료형도 들어올 수 있다. 구조체에 들어간 아이템을 구조체의 멤버(member)라고 부른다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | struct part //specify a structure { int modelnumber; //ID number of widget int partnumber; //ID number of widget part float cost; //cost of part }; int main() { //initialize variable part part1 = { 6244, 373, 217.55F }; part part2; //define variable //display first variable cout << “Model “ << part1.modelnumber; cout << “, part “ << part1.partnumber; cout << “, costs $” << part1.cost << endl; part2 = part1; //assign first variable to second //display second variable cout << “Model “ << part2.modelnumber; cout << “, part “ << part2.partnumber; cout << “, costs $” << part2.cost << endl; return 0; } // Model 6244, part 373, costs $217.55 // Model 6244, part 373, costs $217.55 |
part1 을 part 2에 assign 하는 부분이 있다. 이렇게 하면 part1의 멤버가 그와 같은 이름을 가진 part2의 멤버에 대입된다. 다만 이러한 것은 같은 동일한 struct 에서 만든 변수일 때만 가능하다.
하지만 part3 = part1 + part2 와 같은 연산은 안된다. C++ 내재된(built-in) 자료형에 대해서만 연산이 가능하기 때문이다. 연산자 오버로딩을 통해서 가능하다.
struct를 포함하고 있는 struct 를 nested struct 라고 하는데, 이것을 초기화하기 위해서는 Room dining = { {13, 6.5}, {10, 0.0} }; 와 같이 이중 중괄호를 사용하면 된다. (Room 은 두 개의 멤버가 있고, 각 멤버는 또 두 개의 멤버가 있는 상황임.)
Enum
enum 은 미리 어떤 값이 들어갈지 알 수 있을 때 사용할 수 있다. (days, month 등)
enum 에서 처음 값을 설정해주면 그 다음부터는 그 수로부터 오름차순으로 할당된다. enum Suit { clubs=1, diamonds, hearts, spades }; 이라고 하면 diamonds 는 2, hearts 는 3이 할당된다.
'C++' 카테고리의 다른 글
<algorithm>을 활용한 정렬 (0) | 2019.05.08 |
---|---|
C++ 토막 지식(19.01.16) - class (0) | 2019.01.16 |
C++ string 또는 char 배열을 int 타입으로 바꾸는 방법 (0) | 2019.01.13 |
C++ 토막 지식(19.01.09 - 10) (0) | 2019.01.10 |
UML(Unified Modeling Language)란? (0) | 2019.01.08 |