2022. 4. 15. 17:21ㆍC++
프로그래밍 기초 ( 메모리 ,cpu , 디스크)
구조체
1. 절차적
2. 구조적
3. 객체지향적
### 추상화 ###
C 언어에서 코드를 추상화하는 데 사용되는 삼총사 : 배열, 구조체 , 함수
추상화 ??? 실제 세계 (현상)를 간략화/기보화/보편화 해서 표현한것
★ 코드에서 추상화가 필요한 이유 ★ : 결국 코드는 사람이 짜는 것이기 떄문에
다른 사람이 코드를 해석하기 편리해야 하고
다른 사람이 인수인계받아서 유집호수하기 편리해야 하고
다른 사람들과 함께 공동으로 코드를 만들기 편리해야 하고
-배열 : 속성이 동일한 여러 개의 데이터를 같은 이름과 순서를 지정한 연속된 번호로
서로 연관되어 있음을 표시함으로써 추상화함
-구조체 : 데이터 (자료형)을 실제로 쓰이는 데이터끼리 묶어서 추상화
-함수 : 프로세스(코드)를 특정 기능 단위로 묶어서 추상화
최악의 추상화 -> 추상화를 단계를 상승시키는 과정
ex) string a,b,c; // <- 최악의 추상화
string a[3]; // <- 위의 것보다는 좀 낫다.
string name1, name2, name3; // <- 아니면 이런 식으로든지
stirng studendtName[3]; // 위의 것보다 의도가 명료하게 드러나기 떄문에 좋은 추상화
구조체란??? 함수 위에 써야함
- 변수를 모아 놓은 집합체
- 특정 변수들이 무언가의 하위 개념으로 묶일 수 있을 때
- studnetName[10], studentAge[10], studentOkrScore[10] ....
- '학생' 의 'XXX'
- 이름, 나이, 국어점수, 석차 등등을 '학생' 이라는 구조체로 묶어서 사용
1.구조체를 정의하는 위치 : 구조체가 사용되는 함수의 앞에 정의한다.
2. 구조체 정의의 방법
struct 구조체 변수명
{
구조체 안에 들어갈 하위 변수들
(위의 예시에 따르면 이름, 나이, 국어점수 , 석차같은 애들이 하위변수다. )
};
구조체는 일종의 우리가 새롭게 만든 데이터형이다.
구조체 안에 들어갈 수 있는 하위변수는 무엇이 있을까???????
당연히 int/bool,float 같은 기본 자료형들은 모두 사용 가능
string <- 클래스
3. 구조체의 선언과 초기화
기본적으로 구조체 변수의 개념은 배열 변수의 개념과 동일
int a[3] = {50, 70 ,80};
구조체 변수도 다음과 같이 선언과 동시에 초기화할 수 있다.
player.HP=player.HP - monster
struct score
{
int kor;
int eng;
int math;
};
struct student
{
string name; // 클래스도 쓸 수 있고
int age; // 기본 자료형도 쓸 수 있고
string homeTown; // 주소
int handsomeNess; // 잘생김
int pride; // 자신감
score myScore; // 점수
}jaemin, jinho; // 중괄호의 끝과 세미콜론 사이에다 student의 변수를 미리 선언해 줄수도 있음.
// name, age , korScore , rank 라는 하위 변수를 가지고 있는 students
int main() // 이놈이 지금 우리가 쓰고 있는 유일한 함수
{
cout << "Hello World\n";
}
jaemin.age = 25; // jaemin 나이
jaemin.name = "김재민"; // jaemin의 name은 김재민
jaemin.handsomeNess = 80; // jaemin의 handsomeNess은 100
jaemin.pride = 100; // jaemin의 pride는 1
jaemin.homeTown = "남양주"; // jaemin의 주소는 남양주
jaemin.myScore.eng = 77;
jaemin.myScore.kor = 77;
jinho.handsomeNess = 60;
'C++' 카테고리의 다른 글
C++ 객체지향 프로그래밍 상속쪽 오류 (0) | 2022.05.31 |
---|---|
객체지향 프로그래밍 (0) | 2022.05.30 |
20220414_게임을 만들어보자! (0) | 2022.04.14 |
20220413_배운것~~~! (0) | 2022.04.13 |
20220412_ c++ 조건문 반복문 분기문 (0) | 2022.04.12 |