B2024001225 윤지선

2학기 6주차 과제 본문

2024년 2학기/C++ 프로그래밍

2학기 6주차 과제

윤지선 2024. 10. 7. 16:41

객체지향 프로그래밍 언어 중 가장 많이 사용되는 언어들
C언어 프로그래밍 방식(구조적 프로그래밍 방식)

 

구조적 프로그래밍 방법론

- 처리동작(명령, 연산)에 중점을 두어 프로그램을 작성

- 자료가 프로그램 전체에 노출

- 자료와 처리 동작을 별도로 구분하기 때문에 처리 동작과 자료 사이의 관계가 서로 밀접한 연관성을 갖지 못함

 

데이터와 코드를 하나의 묶음으로 관리

 

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: 를 써야 함

오류 발생
오류가 발생하지 않음

 

 

 

 

C++
JAVA
Python

위 사진들은 언어 별 클래스를 선언하고 객체를 정의하는 방법

 

 

 

 

C언어에서 구조체는 struct Man형

 

 

 

 

C++에서 구조체와 클래스를 선택하는 기준

#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