B2024001225 윤지선
2학기 6주차 과제 본문
구조적 프로그래밍 방법론
- 처리동작(명령, 연산)에 중점을 두어 프로그램을 작성
- 자료가 프로그램 전체에 노출
- 자료와 처리 동작을 별도로 구분하기 때문에 처리 동작과 자료 사이의 관계가 서로 밀접한 연관성을 갖지 못함
C++ 언어는 C언어를 다 포함하고 있음
# 객체지향 프로그래밍에서는 데이터와 처리하는 동작을 하나의 묶음으로 관리.
중요한 C++ 문법 사항
- 객체지향 기본개념
- inline 함수
- 클래스의 생성자(constructor)와 소멸자(destructor)
- 함수 중첩(function overloading)
- 디폴트 인자(default parameter)
- 클래스 상속
- 가상함수(virtual function)
Q. class와 객체란? -> 시험문제 자주 출제
A. 객체의 타입이 class 이다!
UML : 시스템의 설계를 시각적으로 표현하기 위한 모델링
UML 중 가장 쉬운게 클래스 다이어그램
=> 시험 출제
클래스 다이어그램 그리기 |
고양이 (클래스명) |
털색깔, 나이, 품종, 주인이름(변수, 모든 고양이를 특정할 수 있는 변수) |
쥐를 쫓는다, 점프력이 좋다(함수) |
클래스 만드는 것 : 클래스 선언
객체를 만드는 것 : 객체 정의
아무것도 안쓰여 있으면 클래스 안에 들어있는 값이 private 임.
-> age와 weight는 class 밖에서 접근할 수 없음. 외부에서 접근 불가능!
private: 를 생략할 시 기본적으로 캡슐화를 시킴. => private: 는 써도 되고 안써도 됨
외부에서 사용하기 위해서는 public: 를 써야 함
위 사진들은 언어 별 클래스를 선언하고 객체를 정의하는 방법
#include <stdio.h>
class score {
public:
char hakbun[10];
char name[10];
int kor, eng, tot;
double ave;
};
int main(void)
{
score h = { "202345678","하니",80,90 }; //초기화
h.tot = h.kor + h.eng;
h.ave = h.tot / 2.0;
printf("%s %s %d %d %d %.2f\n",
h.hakbun, h.name, h.kor, h.eng, h.tot, h.ave);
return 0;//202345678 하니 80 90 170 85.00
}
#include <stdio.h>
class score {
public:
char hakbun[10];
char name[10];
int kor, eng, tot;
double ave;
void aa() { printf("aaaaa\n"); }
};
int main(void)
{
score h = { "202345678","하니",80,90 }; //초기화
h.aa();
h.tot = h.kor + h.eng;
h.ave = h.tot / 2.0;
printf("%s %s %d %d %d %.2f\n",
h.hakbun, h.name, h.kor, h.eng, h.tot, h.ave);
return 0;//202345678 하니 80 90 170 85.00
}
struct 일 때 기본은 public / class일 때 기본은 private!
'2024년 2학기 > C++ 프로그래밍' 카테고리의 다른 글
2학기 7주차 과제 (0) | 2024.10.14 |
---|---|
2학기 7주차 예습과제 (1) | 2024.10.13 |
2학기 6주차 예습과제 (0) | 2024.10.06 |
자료구조 시간에 공부한 C++프로그래밍 (0) | 2024.10.02 |
2학기 5주차 과제 (0) | 2024.10.01 |