-
2024.02.27 - 구조체(struct)C++ 2024. 2. 27. 17:33
구조체는 여러가지 변수를 묶어서 하나의 데이터로 정리할 때 사용할 수 있는 사용자 정의 자료형이다.
- 구조체 만들기
예시) 학생에 대한 여러가지 정보를 멤버 변수로 가진 Student라는 이름의 구조체
#include<iostream> struct Student{ std::string name; int age; int height; };
- 구조체 변수 만들기, 사용하기
예시)
#include<iostream> struct Student{ std::string name; int age; int height; }; int main(){ Student std1; std1.name = "홍길동"; std1.age = 15; std1.height = 180; /* Student std1 = {"홍길동", 15, 180}; 이렇게 구조체 변수를 초기화 할 수도 있다. */ std::cout << "std1의 이름: " << std1.name << std::endl; std::cout << "std1의 나이: " << std1.age << std::endl; std::cout << "std1의 키: " << std1.height << std::endl; }
- 구조체 멤버 함수 만들고 사용해보기
구조체에는 멤버 변수 뿐만 아니라 멤버 함수가 들어갈 수 있다. 다음은 멤버 함수를 만들고 사용해보는 예제이다.
예시)
#include<iostream> struct Student{ std::string name; int age; void Print(); }; int main(){ Student stdnt; stdnt.Print(); } void Student::Print(){ std::cout << "나는 Student 구조체 안의 Print()함수"; }
- 구조체 자료형으로 배열 만들어 보기
예시)
#include<iostream> struct Student { std::string name; int age; int height; }; int main() { Student sd[3] = { { "홍길동", 9 }, { "홍kill동", 8 }, { "홍길east", 7 } }; for (int i = 0; i < 3; i++) { std::cout << sd[i].name << ", " << sd[i].age << std::endl; } }
- 구조체를 매개변수로 받고 구조체를 return하는 함수
예시)
#include<iostream> struct Zerg { int hp; int atk; int speed; }; Zerg LvUp(Zerg lv); int main(){ Zerg zergling = { 100, 20, 5 }; zergling = LvUp(zergling); std::cout << "챔버에서 업그레이드 1단계 완료" << std::endl; std::cout << "저글링 hp: " << zergling.hp << std::endl; std::cout << "저글링 atk: " << zergling.atk << std::endl; std::cout << "저글링 speed: " << zergling.speed << std::endl; } Zerg LvUp(Zerg lv){ lv.hp += 100; lv.atk += 50; lv.speed += 10; return lv; }
'C++' 카테고리의 다른 글
2024.02.27 - 인수 전달 (0) 2024.02.27 2024.02.27 - 포인터 (0) 2024.02.27 2024.02.26 - 열거형 자료형(enum) (0) 2024.02.27 2024.02.26 - 함수 (0) 2024.02.26 2024.02.23 - 실습 (0) 2024.02.24