Back-end/C++ 20

22. 04. 05 - 이동 생성자, functor, 템플릿, 기본 자료구조, 네임 스페이스

이동 생성자 C++ 에만 있는 – 새로 생긴 개념 이런 게 있구나, 이런 상황에 작동하는구나, 사용하는구나 정도로 check 기본 세팅 - 연산자 오버 로딩 : 배열과 배열을 더해주는 ' + ' 오버 로딩 2개의 배열을 합칠 것인데, 배열의 사이즈와 값 입력하는 방법 check 배열과 배열을 더해주는 ' + ' 오버 로딩 합친 배열 size ( 원래 있던 배열 Array의 size ) + ( 들어온 배열 Array2의 size ) = 합친 배열 size 합친 배열 값 초기화 ( 합친 배열 인덱스 0부터 ~ Array의 size 만큼 Array[ i ] 값들 다 넣어주고 ) + ( Array의 size 끝난 부분부터 Array2의 size만큼 Array2[ i ] 값들 다 넣어준다) 작동 방식 test 5..

Back-end/C++ 2022.04.13

22. 04. 01 - 몬스터 전투 실습 ( 상속, 오버 라이딩, 가상 함수, 추상 클래스)

배운 내용 총 실습 : 몬스터 전투 클래스 만들기 오버 로딩을 통한 다형성 구현하기 파일 분할하기 - 선언부와 구현부 + 파일 분할 후 몬스터 슬라임 추가해보기 상속의 구조로 변경 하기 오버라이딩을 통한 다형성 구현하기 가상 함수, 순수 가상 함수 이번 시간에는 - - - 상속의 구조로 변경 하기 오버 라이딩을 통한 다형성 구현하기 가상 함수, 순수 가상함수, 추상 클래스 몬스터 상속처리 몬스터 각각 만들고 싸우게 하니까 새로운 몬스터 생길 때마다 각각 부분에 처리해줘야 한다. 몬스터 200개 있는데 1개 새로 추가되면.... 200개 부분에 다 추가 필요 상속을 생각해볼 필요가 있다. 상속 시작 공통된 부분을 빼낼 것인데 - 아우룰 수 있는 단어 먼저 선택 - Monster 1. Monster . h ..

Back-end/C++ 2022.04.10

22. 03. 31 - 몬스터 전투 실습 ( 오버로딩을 통한 다형성, 파일분할 )

배운 내용 총 실습 : 몬스터 전투 클래스 만들기 오버 로딩을 통한 다형성 구현하기 파일 분할하기 - 선언부와 구현부 + 파일 분할 후 몬스터 슬라임 추가해보기 상속의 구조로 변경 하기 오버라이딩을 통한 다형성 구현하기 가상 함수, 순수 가상 함수 이번 시간에는 클래스 만들기 오버 로딩을 통한 다형성 구현하기 파일 분할하기 - 선언부와 구현부 + 파일분할 후 몬스터 슬라임 추가해보기 1. 클래스 만들기 Dragon 클래스와 Ogre 클래스 생성 2. 오버 로딩을 통한 다형성 구현하기 드래곤끼리 싸우게 해 줄 것이다 - Attack( Dragon& ref ) 드래곤과 오거 싸우는 상황도 필요하다 - Attack ( Ogre& ref ) 드래곤 클래스 Attack( ) 함수 중 - 오우거 타입으로 인자 값 ..

Back-end/C++ 2022.04.09

22. 03. 30 - 가상 함수, 함수 포인터, 함수 배열

가상 함수 앞 시간에 배운 다형성을 구현하는 방법 중 Override는 다형성 구현을 위해 상속의 관계에서 부모의 가상 함수를 자식 클래스에서 재정의 하는 방식을 이용하였다. 어떤 타입의 객체가 들어올지 모르는 상태에서 함수를 정적 바인딩(컴파일 시에 결정)이 아닌 동적 바인딩(함수 실행 시)으로 만들어 주기 위해서 가상 함수로 사용 가상 함수는 어떤 방식으로 동적 바인딩을 가능하게 만들어 주는 것일까? 가상 함수의 특징과 작동원리에 대하여 실습을 통해 알아보자. 기본 세팅 부모 클래스에 함수 3개 만들기 ( 일반 함수 1개 가상 함수 2개) 자식 클래스 2개 만들기 - ( 일반 함수 재정의 , 가상 함수 1개 재정의 ) 부모 A클래스 일반 함수 info ( ) 가상 함수 print( ) 가상 함수 pr..

Back-end/C++ 2022.04.07

22. 03. 29 - 다중 상속, 다형성 : Overloading, Override

다중 상속 C++ 만의 특성 : 다중 상속 지원 다중 상속이란? -> 부모가 2개 이상 있는 애 다른 언어와 java는 X – interface라는 애를 이용하여 다중 상속처럼 효과 다른 언어에서 없는 근본적 이유 – 모호함 발생한다. 모호함이란? A, B클래스 만들어 주고 A, B 클래스 상속받은 C 클래스 C 클래스 c 객체를 만들었다. 이 c 객체로 value나 info 함수에 접근하려고 할 때 누구의 함수이냐? A냐 B냐. 누구의 value( ) 인지 info( ) 인지 명확하게 해줘야 한다. 모호함이 있어도 괜찮은 경우 서로 이질적인 클래스의 부모들을 상속받을 경우 ex) 자동차 클래스와 사람의 클래스를 상속받는 경우 서로 같은 부분이 많지는 않을 것이다. - 이럴 경우에는 괜찮다고 한다. ex..

Back-end/C++ 2022.04.06

22. 03. 28 - 포함 ( Compositon, Aggregation )

객체 간에 관계를 맺는 방법 - 상속과 포함 포함 계층구조로 관계를 맺으면 – 상속( 생물학적 관계 X ) 어떤 객체가 다른 객체를 멤버로 가지고 있으면 - 포함 Composition - 합성 – 포함된 객체가 생명주기를 같이 하는 경우 – 강한 결합 - 포함관계 Aggregation – 집합 – 포함된 객체가 생명주기를 달리 하는 경우 – 약한 결합 - 참조 관계 포함 - Compositon : 사각형의 점 1. Point - 포인터 클래스 만들기 점 ( . )이라는 것을 추상화 작업 2D공간상에 x값 y값 저장하는 부분 필요 2. Rectangle - 사각형 클래스 만들기 4개의 점이 아닌 - 2개의 점으로 넓이를 구한다. 우리가 필요한 선은 점 2개면 된다. - toppt, bottompt 20번 ..

Back-end/C++ 2022.04.06

22. 03. 25 - 상속( 접근 제어자, 업 캐스팅, 다운 캐스팅 )

상속관계에서 접근제어자의 의미 상속받을 때 부모의 속성을 어떤 형식으로 물려받을 것이냐 class B : public A { } public 속성은 – 부모의 모든 것 물려받겠다. - 부모의 public 영역 다 사용하겠다. protected 해주면 – 부모의 public 영역을 protected로 상속받겠다. - 부모 영역 접근 불가 private 해주면 – 부모의 public, protected영역을 private로 상속받겠다. - 부모 영역 접근 불가 다른 언어에서는 접근제어자 사용하는 경우 본 적 없다. 상속관계에서의 업 캐스팅과 다운 캐스팅 업 캐스팅 상속을 하게 되면 어떤 특성이 생기냐? 자식의 객체를 부모의 타입으로 받을 수 있다 = 업 캐스팅 일반적인 관계에서 A타입 a객체 만들고 /// ..

Back-end/C++ 2022.04.03

22. 03. 24 - 상속(특수화) : 동물 육성 게임, string 클래스 기능 추가 상속

상속을 하는 2가지 – 일반화, 특수화 일반화 기획단계에서 상속을 사용할지 말지 결정한다. 초반에 보고 상속을 하면 되겠다. 작업하다 보니 상속을 하면 되겠다. 하고 상속을 판단하여 구조를 짜는 경우 특수화 개발과정에서 상속을 사용할지 말지 경정한다. SRP – 클래스는 한 가지의 기능 책임을 지는 것이다. 근데 개발하다 보니 클래스가 너무 비대해진다. 이것을 기능 별로 쪼개서 분리하고 상속하는 구조를 짜는 경우 상속 (특수화) 실습 상황 1. – 기획자가 등장 동물 - 3가지밖에 없다고 단정 / 클래스 하나로 다 만드는 것이 났겠다 판단 Animal 클래스 하나에 돼지, 소, 닭 - 다 만들 것이다. #include #include using namespace std; class Animal { pri..

Back-end/C++ 2022.04.02

22. 03. 23 - 캡슐화, 상속(일반화) : 동물 육성 게임

캡슐화란? 대상 객체가 있을 때 그것을 추상화시켜서 필요한 부분만 뽑아서 단순화시킨 것을 캡슐화라고 한다. 캡슐화를 통해 class라는 것으로 묶을 수 있고, class형 dataType이라고 한다 그 데이터 타입을 이용하여 객체를 만들 수 있고, 객체가 만들어져서 메모리에 위치한 상태를 instance라고 한다 instance 실체를 의미 - A클래스로 만든 a; A a; 이면 메모리에 올라간 상태! Son 클래스형 dataType을 가지고 b객체를 만들었다. -- Son b; b라는 객체가 만들어져서 메모리에 딱 할당되어있는 상태! 를 instance라고 한다. 실제로 손흥민 b가 메모리에 위치한 상태일 때. 캡슐화의 기본 정책 – 정보은닉 정보은닉을 위한 접근제어자 private / protecte..

Back-end/C++ 2022.04.02